一.APK文件方式:(CM9方案)

我们知道Android给每个APK进程分配一个单独的用户空间,其manifest中的userid就是对应一个Linux用户的(Android 系统是基于Linux)。所以不同APK(用户)间互相访问数据默认是禁止的,但是它也提供了2种APK间共享数据的形式:
1. Share Preference. / Content Provider
APK可以指定接口和数据给任何其他APK读取,需要自己实现接口和Share的数据.
2. Shared User id
通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中。所以默认就是可以互相访问任意数据。也可以配置成运行成不同的进程,同时可以访问其他APK的数据目录下的数据库和文件。就像访问本程序的数据一样。本文中的换主题功能就是通过这种方式来实现的。

二.读取zip文件的方式:(高通方案)
优点:非开发人员也可以很轻松的完成资源包任务。
缺点:代码比起APK方式相对比较繁琐,需要考虑图片文件完整、和一些异常等因素。这种方式有关问题就是每次需要读取zip流,这样性能太差,可以考虑单例设计。
第1步:程序里所有引用资源的地方改为读路径的方式,不使用android本土R.的方式。
第2步:完成资源所需的所有图片文件和资源相关说明放在一个文件夹压缩打包。
第3步:指定读取资源压缩包的相关约定协议,比如该主题名称等信息以约定格式存储。
第4步:程序读取资源压缩包约定格式的资源信息,加载。

三.读取文件的方式:
优点:性能较好,可以更换theme,layout,xml等大部分文件,
缺点:每个xml文件必须放在源码中编译后取其二进制文件。不便于大量使用和移植,还有个问题就是如果程序添加了新资源文件可能需要重新编译。因为id可能发生了变化。
第1步:完成资源所需的所有图片文件和资源相关说明放在一个文件夹。
第2步:程序里所有引用资源的地方改为读路径的方式,不使用android本土R.的方式。
第3步:指定读取资源文件的相关约定协议,比如该主题名称等信息以约定格式存储。
第4步:程序读取资源压缩包约定格式的资源信息,加载。

参考链接:http://blog.csdn.net/suiyc/article/details/6329212

代码下载链接:http://www.apkbus.com/android-143869-1-1.html

更多相关文章

  1. android 资源文件命名规则 drawable mipmap一样的
  2. android判断文件类型是否为音频文件
  3. Android文件存储位置简述
  4. Android应用程序包含的各个文件
  5. Android Studio 创建 aar文件 并 引用
  6. android 三种定位方式
  7. Android中String资源文件的String.format方法(java)
  8. Android中扫描多媒体文件操作详解

随机推荐

  1. 3月22日学习记录(2)(显式intent与隐式intent
  2. Android(安卓)WebView 踩过的坑
  3. Android(安卓)3.0 访问WebService或Socke
  4. Android(安卓)监听开机广播实现应用开机
  5. Android(安卓)N 各种ANR的时间
  6. Android(安卓)NavigationView使用详解
  7. Android(安卓)Studio AAPT2 error: check
  8. 基于Android的Word在线预览
  9. Android(安卓)ScrollView 滚动监听
  10. Fragment使用