1、Andriod应用开发,google 2011/02/10,android移植策略,Android 简介 Android开发环境 Android 开发基础 Android Application 开发细节 Android Framework Android 线程通信/ IPC 通信 Andorid 整合开发,Android 简介,开放源码的平台 Apache 2.0授权(MODULE_LICENSE_APACHE2)http:/ 新框架,Android开发环境,JAVA Application/ Manager/ Service IDE: Eclipse + ADT SDK: android
2、sdk C/C+ Service/ Stub C 库: BSD C库精简版 bionic 内核 + 驱动最后在Android开发源码中整合,Android 开发基础,Process Types Foreground process (UI) Visible process Service process (Java Service/ Native Service) Background process (daemon service ) Empty process Zygote 和 dalvik 之间的关系 Android API Level Android 编译流程 (Android.mk/
3、 config.mk) www.kandroid.org/android_pdk/build_system.html(仅参考),Application Development,体系结构 Src Gen Sdk Res () Manifest Properity AVD (android virtual device),Application Development,API 文档$ANDROID-SDK/docs/index.html Android 应用开发原则 Activity开发 View / Menu Intent / AppWidget Style / Theme Dialog / o
4、ther UML 流程设计,Application Development,需要注意的问题 框架不完整需要进行合适移植 Activity 应用 Low Memory Killed 机制 Zygote 和 vm 关系 AP层编程最好遵循google的原则,Androd 源码目录结构,内核与框架脱离 框架源码结构 内核定制 schedule, memory, ipc(binder), pm(wakelock) android 驱动.,Andriod 的目录体系,软硬件整合流程,AP 层 不能直接访问硬件 Java 与 C/C+ 交互 (JNI) 对多硬件厂商在非开源情况下的驱动库如何维护 (HAL
5、: hardware abstract layer),软硬件整合流程(JDK方式直接整合),扩展不灵活,不利于模块化分离业务 多client情况下不能解决硬件重入问题 不利于多硬件种类的统一 .,软硬件整合流程,Android 软硬整合技术架构,Android 软硬整合开发流程,(大框架Android Framework开发),JNI (方法签名),HAL,3M原则(MyJar MyRuntime MyStub),Andriod 大框架开发角色,Andriod 大框架开发角色,Andriod 大框架开发角色,Andriod 大框架开发角色,Andriod 大框架开发角色,底层人员与传统角色的差
6、别,软硬件整合流程 (大框架Android Framework开发),定义接口,独立开发 Verdor/Company/Board/App | Framework/base/(java | jni) | Hardware AndroidBoard.mk | AndroidProducts.mk Jar 包和 插件stub的配置。,Andriod 效率,Andriod 效率,重申andriod框架与应用的开发原则,IPC通讯和线程通讯,回调机制 (JNI层, HAL层) Donot call me, I will call you back ASH IPC通讯 Native Service Ibinder接口 Java Service Binder类 Android Service Manager 管理及其Binder 线程控制管理机制 线程通讯 UI MainThread 管理 Long Operation/ Block Opertion LowLevel Thread 管理 Message Queue 通讯,演示代码例子 http:/