Android底层故事

  【TechWeb报道】7月31日消息,点心OS架构师万琼柱、小米科技首席架构师汪文俊、盛大乐众ROM架构师郭振做客第169期IT龙门阵,讲述Android底层故事。

  Android如何有效加载资源

  点心OS架构师万琼柱演讲主题为《Android资源体系介绍》。“资源”是程序运营逻辑之外的其他静态内容。使用资源机制,可协助分离UI展现和应用逻辑,使程序有更加结构,并适配不同的硬件配置等。

  万琼柱讲解,通过资源ID分段,以最佳的方式从资源表中执行查找。

  AAPT:图片类已压缩过的资源在APK中是无压缩ZipEntry存储的,这样可以避免运行时每个资源0-64kb的内存开销,可以用最节省内存的方式访问,另外不需要压缩也节省了CPU消耗。

  ZipAlign:确保无压缩的资源文件在APK内是按4字节对齐的,可以直接被mmap到进程内存空间,并使访问具有最佳性能。

  运行时:尽力通过mmap的方式控制Heap内存消耗,缓存较小的资源到内存中来加快访问速度。

  点心操作系统Web化

  如何组织深度定制版android中的资源?万琼柱介绍了以下场景和需要解决的问题:

  上层APK需要以二进制方式发布以便保护知识产权;

  上层APK存在厂商定制,需要以来平台资源和Java库;

  上层APK成套存在,公用资源和代码会提取进入系统框架;

  需与多家硬件厂商并发合作,但不希望产生多套二进制文件;

  解决方法:不允许厂商删除Framework中的资源(合理假设)、但厂商可以任意增加资源,不会妨碍预编译的点心APP对资源ID的预期。控制资源ID的生成,参照public.xml机制,扩充AAPT的资源类型,在执行public ID预分配后,给点心已知的所有资源ID赋值。

  点心操作系统三年来,已从整体操作系统发展到操作系统Web化。前年,点心做整体操作系统。去年,点心操作系统应用化,从操作系统发展到工具Apps集合:例如安卓优化大师、安卓省电、点心桌面、点心拨号、点心闹钟等。今年和明年,实现操作系统Web化,从操作系统演化到Web/原生混合式Apps ,例如:点心壁纸,点心极速桌面。

  应用在模拟器上测试可覆盖大部分的机型

  现场有开发者提问,Android最大的问题是设备型号太多,适配太困难。对于如何适配问题,小米科技首席架构师汪文俊表示,对于小米来说会尊重Google CTS,不会让应用为MIUI做改变。

  汪文俊建议,开发者在开发应用时,由于手机设备型号太多,无法一一去测试,一般会在模拟器上进行测试,基本可覆盖大部分的机型。

  他透露,MUI团队最开始只有3个人,现在工程师70多人,加上测试 、设计,团队成员共160个人。

  乐众ROM:打造手机娱乐平台

  盛大乐众ROM架构师郭振演讲主题为《Android账户同步备份框架》。Android 从2.0之后加入了账户、同步、备份框架,郭振介绍了这三个框架的架构和设计,并从系统开发的角度讨论如何与Android的账户同步备份框架对接,将自己的服务集成到Android系统中。

  对于Android碎片化问题,郭振认为Google愿意看到这种场景。“Google愿意看到Android碎片化、多元化。iPhone已是街机,但Android有很多机皇,每个厂商可以满足用户不同的需求。Google乐见很多互联网厂商、手机厂商参与到Android发展中。”

  他表示,乐众OM依托盛大文学、视频等资源,将打造手机娱乐平台。目前,乐众ROM已支持16款机型。(可心)

时间: 2024-07-31 00:32:51

Android底层故事的相关文章

点心OS架构师万琼柱、小米科技首席架构师汪文俊、盛大乐众ROM架构师郭振做客IT龙门阵,讲述Android底层故事

Android如何有效加载资源 点心OS架构师万琼柱演讲主题为<Android资源体系介绍>."资源"是程序运营逻辑之外的其他静态内容.使用资源机制,可协助分离UI展现和应用逻辑,使程序有更加结构,并适配不同的硬件配置等. 万琼柱讲解,通过资源ID分段,以最佳的方式从资源表中执行查找. AAPT:图片类已压缩过的资源在APK中是无压缩ZipEntry存储的,这样可以避免运行时每个资源0-64kb的内存开销,可以用最节省内存的方式访问,另外不需要压缩也节省了CPU消耗. Zi

android 底层的 问题,求解决

问题描述 android 底层的 问题,求解决 我的apk包中有classes.dex文件,还有assets目录下的key文件, 我怎么在底层的代码中获得这两个文件呢?着急 谢谢 解决方案 classes.dex是你打包之后生成的文件.你读取它干嘛? assets下面的文件读取需要使用**AssetManager**类. 先在Activity里面调用getAssets() 来获取AssetManager引用. 再用AssetManager的open(String fileName, int ac

请教下有没大师知道android 底层怎么搞个1ms的中断呢

问题描述 请教下有没大师知道android 底层怎么搞个1ms的中断呢 请教下有没大师知道android 底层怎么搞个1ms的中断呢 解决方案 android不是实时操作系统,在没有外部硬件支持的情况下,保证不了这样的精度. 解决方案二: 用外部输入一个1khz的方波信号 数1000次 得到的时间差只有700ms是怎么回事呢 测试代码贴出来给大神们看看 static int my_probe(struct platform_device *pdev) { struct my_drvdata *d

关于android底层绘制机制

问题描述 各位大侠,先请看下面一段非常非常简单的代码:package com.zsh;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;public class TestAndroid3Activity extends Activity { /** Called when

Android底层字符传递给上层应用举例

Android底层字符传递给上层应用 1.Android的硬件抽象层读取相应的串口设备的数据: static int uart_read_drv(struct uart_control_device_t *dev, char *buf, int count)         {                  int count1 = 0;                 count1 = read(fd, buf, count);                 if(count1 < 0)

《Android底层接口与驱动开发技术详解》digest

第一章:IDE:Eclipse ADT for java developer其它: Apache Ant Java SE Development Kit5或6 Linux和Mac上使用Apache Ant 1.65+,Windows上使用1.7+版本:(单独的JRE是不可以的,必须要有JDK),不兼容Gnu Java编译器(gcj)     Java_Home x:\xx\xx\java\JDK1.6.0-17classpath:.;%JAVA_HOME%/lib/rt.jar;%JAVA_HO

Android底层开发经验

最近看到一个博客,他的博文虽然是转载的,但源作者肯定对底层的理解可谓是非常透彻,一副思维导图就可以将整个重要体系建立起来,非常适合大家学习.学习不单单只要有代码,生动有趣更重要.在此推荐一波: http://blog.csdn.net/yuzeze

热捧Android的手机厂商主动放弃了行业主导权

朋有话 关于谷歌Android平台的利好消息不断传来:首先是其在美国市场的份额终于超过了苹果的iOS:接下来是每日出货量超过16万部,也成功将苹果iPhone甩到了身后:最有趣的是Android系统方案获得了国内山寨机厂商的高度青睐,目前正在加班加点研发相关产品以赶上年底圣诞.新年的市场旺季--良好的市场表现,让已经推出了Android平台的正规手机厂商也终于扬眉吐气了一把,摩托罗拉.三星.LG等巨头们纷纷像Android表示了力挺态度,并将之视作自身对抗苹果iPhone的希望,可是将自身发展的

android获取设备唯一标示

概述 有时需要对用户设备进行标识,所以希望能够得到一个稳定可靠并且唯一的识别码.虽然Android系统中提供了这样设备识别码,但是由于Android系统版本.厂商定制系统中的Bug等限制,稳定性和唯一性并不理想.而通过其他硬件信息标识也因为系统版本.手机硬件等限制存在不同程度的问题. 下面收集了一些"有能力"或"有一定能力"作为设备标识的串码. DEVICE_ID 这是Android系统为开发者提供的用于标识手机设备的串号,也是各种方法中普适性较高的,可以说几乎所有