07 2012 档案
摘要:这篇文章来自公司的一封Q/A邮件。背景是想知道目前市面上的应用是否能在多核手机上性能有成倍增加。所以,自然而然就会问到一个基本问题,如何判断android中一个应用是否为多线程。这里简单扯一下多核的知识。我最早接触多核知识是2008年末到2009年初。背景很简单,我是做高性能网络数据传输服务器的,类似FTPServer一样。服务器的吞吐能力最好是随着CPU核数的增加成倍增长.。根据多核并行的知识,这是最理想的情况(有一个公式,可以计算性能和CPU核数的关系),但应用内部各个线程并非完全独立。即线程是独立运行在不同CPU核上,但是线程中所干的事情却在逻辑上有关系。例如运行在线程A上的函数等待运行
阅读全文
摘要:时间真的是很巧,本来没打算写Surface系统的(相比AudioFlinger来说,Surface变化之后的难度真的是毛毛雨了),但为了庆祝泷泽萝拉发第二部大作,我决定还是要坚持一下。下面将延续Audio的分析风格,从几个层面来介绍Surface系统的变化(JB号称在Surface这块做过大量的优质的改进,无非就是引入在PC机上早都烂熟的VSYNC,Triple Buffering。但是JB,您能确保这套机制在单核机器上跑得开么?Win Phone 单核,都比多核Android机器流畅。恐怕还是Android上层Display架构有问题吧??!)同Audio一样,想真正理解Surface系统工
阅读全文
摘要:Android 4.1,英文代号简称JB。在国人眼里,JB这个词还和动物有点关系。Google如此频繁修改Android,终于推出了一个可以被大家整天JB JB挂在嘴上的版本。以后我的文章也可以一面用JB表示版本号,一面用JB表示毛主席常说的”战略上的鄙视了“。请大家根据上下文揣摩我写下JB一词的心情。今天将稍深入得介绍一下JB 4.1在Audio系统做的翻天覆地的改动。这里先啰嗦几句:就像80后经常抱怨自己晚生了几年一样,马上就会有很多码农抱怨接触Android太晚了。为何?JB Audio系统的难度相对4.0, 2.3, 2.2已经非常非常大了。99%的情况下,在你没有看到这个NB(这不是
阅读全文
摘要:7月13号初略看了下:1 init没有太大变化,从init.rc可以看出规则未变,但init.rc出现了一些新的设置,看来更依赖kernel的一些信息了2 app_process未有太大变化,即zygote没有变化3 SystemServer变化很大,增加了几个奇怪的service,而且有些service的启动开始受到系统属性的控制了,例如 audioService受到"system_init.startaudioservice“控制 3.1 增加昨天提到的SchedulePolicyService,用于控制媒体相关进程调度策略的调整。注意是调度策略,而不是优先级。 3.2 增加了一
阅读全文
摘要:告诉大家一个不幸的消息,Android 4.1的代码变化非常非常大。忍不住想骂娘了。 绝对坑了我们这帮做FW的人如果能看懂深入理解android 卷I,可能还能搞4.1。唉,否则直接从4.1入手,难度会超大超大。下了代码后,立即看了AudioFlinger和SurfaceFlinger的实现。结构变化较大。有2.2的影子,但已经逐渐不多了。文件的位置也发生了重大变化。我不觉得能很容易得从4.0.4移植到4.1。虽然XDA/CM已经成功了。可能是因为还没看HAL层的变化。SystemServer增加了SchedulingPolicyService,用来调节Media进程的调度优先级。另外,那个该
阅读全文
摘要:感谢各位读者的耐心期待。今天将发布深入理解android样章,包括:1 目录2 第一章:主要讲述如何部署开发环境,如何调试SystemServer3 第7章:深入理解ContentProvider欢迎各位提bug,正式书籍,将在7月底上市。下载地址:http://download.csdn.net/detail/innost/4408144http://download.csdn.net/detail/innost/4408140http://download.csdn.net/detail/innost/4408134
阅读全文