如何把应用程序app编译进android系统

简介:
把常用的应用程序编译到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 \  

我们添加一个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.   
  8. 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包,并删除 
相关文章
|
1月前
|
监控 安全 数据可视化
【教程】为什么要为 App 应用加固 ?如何为 App 应用加固 ?
【教程】为什么要为 App 应用加固 ?如何为 App 应用加固 ?
|
2月前
|
Android开发
安卓SO层开发 -- 编译指定平台的SO文件
安卓SO层开发 -- 编译指定平台的SO文件
32 0
|
2月前
|
iOS开发 开发者
苹果iOS App Store上架操作流程详解:从开发者账号到应用发布
很多开发者在开发完iOS APP、进行内测后,下一步就面临上架App Store,不过也有很多同学对APP上架App Store的流程不太了解,下面我们来说一下iOS APP上架App Store的具体流程,如有未涉及到的部分,大家可以及时咨询,共同探讨。
|
2月前
|
存储 iOS开发 开发者
如何在上架App之前设置证书并上传应用
在上架App之前想要进行真机测试的同学,请查看《iOS- 最全的真机测试教程》,里面包含如何让多台电脑同时上架App和真机调试。
|
2月前
|
机器学习/深度学习 算法 数据可视化
基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP
基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP
104 0
|
3天前
|
测试技术 Android开发
Android App获取不到pkgInfo信息问题原因
Android App获取不到pkgInfo信息问题原因
14 0
|
1月前
|
前端开发 Android开发 iOS开发
应用研发平台EMAS使用 aliyun-react-native-push 库接入推送和辅助通道,推送都可以收到,但是在App切到后台或者杀掉进程之后就收不到推送了,是需要配置什么吗?
【2月更文挑战第31天】应用研发平台EMAS使用 aliyun-react-native-push 库接入推送和辅助通道,推送都可以收到,但是在App切到后台或者杀掉进程之后就收不到推送了,是需要配置什么吗?
32 2
|
1月前
|
设计模式 测试技术 数据库
基于Android的食堂点餐APP的设计与实现(论文+源码)_kaic
基于Android的食堂点餐APP的设计与实现(论文+源码)_kaic
|
2月前
|
安全 Java 数据挖掘
当 App 有了系统权限,真的可以为所欲为? Android Performance Systrace
当 App 有了系统权限,真的可以为所欲为? Android Performance Systrace 转载自: https://androidperformance.com/2023/05/14/bad-android-app-with-system-permissions/#/0-Dex-%E6%96%87%E4%BB%B6%E4%BF%A1%E6%81%AF
31 0