免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1026 | 回复: 0
打印 上一主题 下一主题

[20100330]Jollen Android Framework & HAL 培训Day 2 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-22 08:51 |只看该作者 |倒序浏览
昨天培训结束后赶飞机,走的很匆忙,没来得及和Jollen好好聊聊。稍微记录点心得体会:

1)课上提了一个加速APP启动的idea:可以用类似cache的方法将解释过的bytecode保存起来。算是JIT和普通解释的折中方法,不过还没有实现。

2)Zygote是第一个被运行的Android进程(不是Linux进程,那是init)。一般只有Zygote是通过main来运行,其他Android进程都是folk Zygote来的,这样可以复用Zygote启动时preload的class库。但也有不用folk,直接dalvikvm来启动,传说HTC有高级UI就是直接启动的。

3)讲了AIDL这个自动生成Iinterface接口继承代码的工具,为啥要继承这个接口呢,因为自己的Service要定义接口。同时Service还要继承Binder类,这样Service就有了一套封装好的进程交换方法,而不用调用binder IPC的底层函数。Manager和Service通过继承Binder类提供方法来传递数据这种方式比较好,这也是一种优化Android Framework的方法吧。具体做法为通过AIDL把Service封装为Proxy Obj(继承了Binder和接口,又称分身),位于Manager进程,通过继承而来的Binder方法和Service进程(继承Proxy Obj,是实体)通讯。A系统大部分都改成这种模式,还有少数Service没改,但是很多OHA厂商自己都改了,当然是为了优化。
具体步骤:
(0)写AIDL文件
(1)写LedService.java 继承ILedservice.stub(AIDL生成的Proxy Obj)
(2)写LedManager.java 它的构造函数要拿到Proxy Obj.

4)问了几个问题
问:Android有什么好的调试方法?
答:一般就GDB、ADB,要根据情况选择。
我:我们都用printk和LOG,好可怜

问:Android的代码管理和分工协作的方法:
答:git

问:Android的2D加速怎么做?
答:每个厂商都不同,做法不一

btw:架构师真是个好职业,天天画画class图和sequence图。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP