android之APP模块编译
发布日期:2021-06-30 18:53:21 浏览次数:3 分类:技术文章

本文共 2206 字,大约阅读时间需要 7 分钟。

原文地址:http://blog.csdn.net/yaphet__s/article/details/45640627

一,如何把app编进系统

    a.源码编译,在packages/apps目录下有安卓原生的app,以Bluetooth为例,源码根目录下有Android.mk文件:

    packages\apps\Bluetooth

[html] 
  1. LOCAL_PATH:= $(call my-dir)  
  2. include $(CLEAR_VARS)  
  3. #负责清理除LOCAL_PATH外的其他LOCAL_XXX,这个清理动作是必须的,因为所有的编译控制文件由同一个GNU  Make解析和执行,  
  4. #其变量是全局的。所以清理后才能避免相互影响。  
  5. LOCAL_MODULE_TAGS :optional  
  6.   
  7. LOCAL_SRC_FILES := \  
  8.         $(call all-java-files-under, src)  
  9.   
  10. LOCAL_PACKAGE_NAME :Bluetooth  
  11.   
  12. LOCAL_CERTIFICATE :platform  
  13. #使用系统签名  
  14. LOCAL_JNI_SHARED_LIBRARIES :libbluetooth_jni  
  15. LOCAL_JAVA_LIBRARIES :javax.obex telephony-common mms-common  
  16. LOCAL_STATIC_JAVA_LIBRARIES :com.android.vcard  
  17. LOCAL_JAVA_LIBRARIES += com.broadcom.bt   
  18.   
  19. LOCAL_REQUIRED_MODULES :libbluetooth_jni bluetooth.default  
  20.   
  21. LOCAL_PROGUARD_ENABLED :disabled  
  22. #不使用代码混淆的工具进行代码混淆,不设置则默认值为full,即将该工程代码全部混淆  
  23. include $(BUILD_PACKAGE)  
  24.   
  25. include $(call all-makefiles-under,$(LOCAL_PATH))  
     在packages\apps\Bluetooth下mm,可单独编译,在\out\target\product\xxx\system\app下会生成Bluetooth.apk。

     然后修改build下的mk文件,增加蓝牙模块,这样在源码根目录下执行make就会编译到Bluetooth模块

\build\target\product\generic_no_telephony.mk

[html] 
  1. PRODUCT_PACKAGES := \  
  2.     DeskClock \  
  3.     Bluetooth \     #增加蓝牙模块  
  4.     Calculator \  

    b.apk编译,针对没有源码的第三方apk,修改Android.mk:

[html] 
  1. LOCAL_PATH := $(call my-dir)  
  2. include $(CLEAR_VARS)  
  3. # Module name should match apk name to be installed  
  4. LOCAL_MODULE :Animation  
  5. LOCAL_MODULE_TAGS :optional  
  6. LOCAL_SRC_FILES :Animation.apk  
  7. LOCAL_MODULE_CLASS :APPS  
  8. LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)  
  9. LOCAL_CERTIFICATE :PRESIGNED  
  10. include $(BUILD_PREBUILT)  
还需要修改device.mk:
[html] 
  1. PRODUCT_PACKAGES +=\  
  2.        PackageInstallerRenew\  
  3.        Video\  
  4.        TlrService\  
  5.        Animation\   #添加Animation模块  

二,如何删除app,使当前app不会编进系统

    在packages/apps目录下有安卓原生的app,有一些app是不需要的。

LOCAL_PACKAGE_NAME    packages\apps\Bluetooth\Android.mk

[html] 
  1. LOCAL_SRC_FILES := \  
  2.         $(call all-java-files-under, src)  
  3. LOCAL_PACKAGE_NAME :Bluetooth5   #将Bluetooth重命名为Bluetooth5。也可更改generic_no_telephony.mk  
  4. #保证和generic_no_telephony.mk增加的模块名字不一致即可  
  5. LOCAL_CERTIFICATE :platform  
   特别注意,有的模块不一定在generic_no_telephony.mk中增加,可通过find . -name "*.mk" | xargs grep "Bluetooth"来查看在哪个mk里面声明了。由于大部分企业都没有统一的管理规范,一个模块有时候会在多个mk中增加,所以最快的方式就是更改packages\apps\Bluetooth\Android.mk的LOCAL_PACKAGE_NAME ,或者置空。

   


版权声明:本文为博主原创文章,未经博主允许不得转载。

转载地址:https://linus.blog.csdn.net/article/details/49003307 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android 闹钟
下一篇:Android bootchart分析

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月23日 02时27分59秒