上一页 1 2 3 4 5 6 7 8 ··· 10 下一页

2012年2月13日

android平台中编写jni模块的方法(2)

摘要: 继续上一篇,目前android平台的sdk已经发布到了cupcake 1.5的版本(最新的开发版可能要比这个版本更高,期待android 2.0 :D)对 于android 1.5版本的开发者而言,一个非常大的好消息是cupcake已经开始“官方”支持开发者编写自己的jni库了,这主要表现在google放出了一个叫做 android-ndk的开发包,这个开发包是专门为了开发jni而准备的一些必要的头文件以及一些运行时所需的库,为android应用开发者提供了比 较方便的脚本支持。这种方便和快捷是在android 1.0和1.1的sdk以及配套的工具里面是没有的。试用了ndk以后感觉良好,偶对于 阅读全文

posted @ 2012-02-13 11:46 小小博客小小员 阅读(304) 评论(0) 推荐(0) 编辑

android平台中编写jni模块的方法(3)

摘要: 这篇文章来说说ndk的使用方法,其实主要是关于ndk的一些编译选项的研究和翻译(其实人家google的文档已经说的很清楚了)。偶选用的测试环境是 slackware 12.0 + android 1.5 r1 for linux + jdk 1.6.0_12,ndk选用的是android 1.5 ndk r1这个版本的(直接解压就行,免安装的)。1、从ndk安装说起ndk安装的时候需要运行一 个~/android-ndk-1.5_r1/build/目录下面的一个叫做host-setup.sh的脚本。大略读了一下这个脚本,发现这个主要是 用来生成out/host/host/config.mk文件 阅读全文

posted @ 2012-02-13 11:46 小小博客小小员 阅读(703) 评论(0) 推荐(0) 编辑

android平台中编写jni模块的方法(1)

摘要: 本文主要来记录一下偶对android平台下面jni技术的研究心得体会,一来是备忘,二来也为后来者节省一些独自摸索的时间。一直在忙 着project方面的事情,听到一个朋友提起说偶的blog很久没有更新了。所以今天抽一些时间上来写点东西。没办法,随着手机行业的竞争日趋白热化, 加上google,apple,palm之流的公司搅局,在手机领域的从业者的空闲时间越来越少,竞争也日趋白热化。闲话少叙,开始进入正题:1、介绍一下命令行开发的方法由于用c/c++习惯了,所以对eclipse的使用很是不习惯,还是决定用命令行(makefile类似)的方式进行编译、开发(偶个人比较痴迷emacs)。如果是ja 阅读全文

posted @ 2012-02-13 11:44 小小博客小小员 阅读(478) 评论(0) 推荐(0) 编辑

java代理模式 (转)

摘要: java代理模式 (转) 1. 代理模式 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式一般涉及到三个角色: 抽象角色:声明真实对象和代理对象的共同接口; 代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象。同时,代理对象可以在执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装。 真实角色:代理角色所代表的真实对象,是我们最终要引用的对象。以下以《Java与模式》中的 阅读全文

posted @ 2012-02-13 11:32 小小博客小小员 阅读(245) 评论(0) 推荐(0) 编辑

2012年2月8日

Android AIDL使用详解

摘要: 1.什么是aidl:aidl是 Android Interface definition language的缩写,一看就明白,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口icp:interprocess communication :内部进程通信2.既然aidl可以定义并实现进程通信,那么我们怎么使用它呢?文档/android-sdk/docs/guide/developing/tools/aidl.html中对步骤作了详细描述:--1.Create your .aidl file - This file defines an interface (Yo 阅读全文

posted @ 2012-02-08 17:49 小小博客小小员 阅读(817) 评论(0) 推荐(0) 编辑

Android AIDL——实现机制浅析

摘要: 1.基于前面写的aidl使用,这段时间准备研究ActivityManager框架,对aidl进行了更深入的研究,因为android框架大量使用了进程通信机制,所以,在研究android framework前认真研究一下AIDL的实现机制十分有必要的 2.前面讲了aidl是 Android Interface definition language的缩写,它是一种进程通信接口的描述,通过sdk解释器对器进行编译,会把它编译成java代码在gen目录下,类路径与aidl文件的类路径相同。 3.aidl接口package com.cao.android.demos.binder.aidl; impo 阅读全文

posted @ 2012-02-08 16:39 小小博客小小员 阅读(2035) 评论(0) 推荐(0) 编辑

android 布局长度单位深入研究

摘要: 要想使自己的布局在不同设备达到精准空置,理清理顺android布局长度单位之间关系很有必要,否则你也许会经常挠头为什么显示出来的布局不是自己定义的效果呢,有些东西,虽然基础,但是弄个透彻也需要花些功夫,废话不多说,下面开始。1.先了解一下android有支持哪些长度单位:px: pixels(像素). 不同设备显示效果相同,比如我们800*480的屏幕宽度就是 800pxdip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,通常屏幕大时,density就大,屏幕小时,density就小 屏幕实际分辨率为240px*400p 阅读全文

posted @ 2012-02-08 16:38 小小博客小小员 阅读(535) 评论(0) 推荐(0) 编辑

android Launcher——拖放功能深入研究

摘要: Luancher有一个相对比较复杂的功能就是拖放功能,要深入了解launcher,深入理解拖放功能是有必要的,这篇blog,我将对launcher的拖放功能做深入的了解1.首先直观感受什么时候开始拖放?我们长按桌面一个应用图标或者控件的时候拖放就开始了,包括在all app view中长按应用图标,下面就是我截取的拖放开始的代码调用堆栈at com.android.launcher2.DragController.startDrag(DragController.java:170)at com.android.launcher2.Workspace.startDrag(Workspace.ja 阅读全文

posted @ 2012-02-08 16:37 小小博客小小员 阅读(2501) 评论(4) 推荐(1) 编辑

android Launcher——启动过程详解

摘要: 一LauncherApplication->onCreate --1.//设置最小堆内存4M --2.//建立应用图标缓存器 --3.//建立LauncherModel --4.//注册Intent.ACTION_PACKAGE_ADDED,Intent.ACTION_PACKAGE_REMOVED,Intent.ACTION_PACKAGE_CHANGED事件监听器 LauncherModel作为广播接收器对上面3中事件进行监听 --5.//添加对桌面favorites content provider 数据变化监听器二Launcher->onCreate --1.获取Launc 阅读全文

posted @ 2012-02-08 16:35 小小博客小小员 阅读(2197) 评论(0) 推荐(0) 编辑

android Launcher——数据加载与变更

摘要: 在前面我的blog中,我已经说过了,Launcher所有的桌面项数据是存储在launcher.db/favorites表中在 Launcher启动时loadeworkspace函数中会从数据库中查询所有的数据并显示出来,这个桌面项数据加载过程在我的blog Launcher——启动过程详解中有比较详细的描述,这篇blog,我着重讲述Launcher桌面项的添加,变更和删除,下面就进入主题1.Launcher桌面项的添加:从用户操作的角度来看,我们有两种方式来添加桌面项--1.从all app view中拖到桌面,从下面的调用堆栈知道最后通过LauncherProvider.insert把拖过来 阅读全文

posted @ 2012-02-08 16:35 小小博客小小员 阅读(1308) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 ··· 10 下一页

导航