Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1071246
  • 博文数量: 403
  • 博客积分: 10272
  • 博客等级: 上将
  • 技术积分: 4407
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 14:22
文章分类

全部博文(403)

文章存档

2012年(403)

分类: 嵌入式

2012-02-25 13:44:50

转载:
http://ywxiao66.blog.163.com/blog/static/175482055201152710441106/
------------------------------------------------------------------
把常用的应用程序编译到img文件中,就成了系统的一部分,用户不必自己安装,当然也卸载不了;
同时也可以删减系统自带的应用程序,精简系统;

1.\build\target\product 目录下generic.mk文件:
Java代码 复制代码 收藏代码
  1. PRODUCT_PACKAGES := \
  2. AccountAndSyncSettings \
  3. DeskClock \
  4. AlarmProvider \
  5. Bluetooth \
  6. Calculator \
  7. Calendar \
  8. Camera \
  9. testMid \
  10. CertInstaller \
  11. DrmProvider \
  12. Email \
  13. Gallery3D \
  14. LatinIME \
  15. Launcher2 \
  16. Mms \
  17. Music \
PRODUCT_PACKAGES := \ AccountAndSyncSettings \ DeskClock \ AlarmProvider \ Bluetooth \ Calculator \ Calendar \ Camera \ testMid \ CertInstaller \ DrmProvider \ Email \ Gallery3D \ LatinIME \ Launcher2 \ Mms \ Music \
我们添加一个testMid \ 应用名称。
2.把testMid包放入
\packages\apps 目录下,修改android.mk文件。

Java代码 复制代码 收藏代码
  1. LOCAL_PATH:= $(call my-dir)
  2. include $(CLEAR_VARS)
  3. LOCAL_MODULE_TAGS := optional
  4. LOCAL_SRC_FILES := $(call all-subdir-java-files)
  5. LOCAL_PACKAGE_NAME := testMid
  6. LOCAL_CERTIFICATE := platform
  7. include $(BUILD_PACKAGE)
LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_PACKAGE_NAME := testMid LOCAL_CERTIFICATE := platform include $(BUILD_PACKAGE)
注:LOCAL_PACKAGE_NAME := testMid (包名必须和generic.mk中添加的相同)
编译源码,可以看到在
\out\target\product\smdkv210\system\app
目录下生存了testMid.apk了。这时system.img也包含了此应用。
-------------------------------------------------------------------
特殊情况:有时,应用需要包含jar包,这时的app导入源码时会出现问题:
MODULE.TARGET.JAVA_LIBRARIES.libarity already defined by ... stop

由于 LOCAL_STATIC_JAVA_LIBRARIES := libarity 会引发错误信息。
目前解决方法是:
\build\core 目录下修改base_rules.mk
注释掉错误信息:

ifdef $(module_id)
#$(error $(LOCAL_PATH): $(module_id) already defined by $($(module_id)))
endif
$(module_id) := $(LOCAL_PATH)

--重新编译,这时可以通过了。

(2)、删除原厂(Telchips)带源码的应用程序,如DTV_DVBT
在/device/telechips/m801/device.mk
注释掉相应语句:
# PRODUCT_PACKAGES += \
# SampleDVBTPlayer \
同时,在/out/target/product/m801/system/app 找到相应的.APK包,并删除
阅读(1384) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~