android之APP模块编译
在packages\apps\Bluetooth下mm,可单独编译,在\out\target\product\xxx\system\app下会生成Bluetooth.apk。 还需要修改device.mk: 特别注意,有的模块不一定在generic_no_telephony.mk中增加,可通过find . -name "*.mk" | xargs grep "Bluetooth"来查看在哪个mk里面声明了。由于大部分企业都没有统一的管理规范,一个模块有时候会在多个mk中增加,所以最快的方式就是更改packages\apps\Bluetooth\Android.mk的LOCAL_PACKAGE_NAME ,或者置空。
发布日期: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
- LOCAL_PATH:= $(call my-dir)
- include $(CLEAR_VARS)
- #负责清理除LOCAL_PATH外的其他LOCAL_XXX,这个清理动作是必须的,因为所有的编译控制文件由同一个GNU Make解析和执行,
- #其变量是全局的。所以清理后才能避免相互影响。
- LOCAL_MODULE_TAGS := optional
- LOCAL_SRC_FILES := \
- $(call all-java-files-under, src)
- LOCAL_PACKAGE_NAME := Bluetooth
- LOCAL_CERTIFICATE := platform
- #使用系统签名
- LOCAL_JNI_SHARED_LIBRARIES := libbluetooth_jni
- LOCAL_JAVA_LIBRARIES := javax.obex telephony-common mms-common
- LOCAL_STATIC_JAVA_LIBRARIES := com.android.vcard
- LOCAL_JAVA_LIBRARIES += com.broadcom.bt
- LOCAL_REQUIRED_MODULES := libbluetooth_jni bluetooth.default
- LOCAL_PROGUARD_ENABLED := disabled
- #不使用代码混淆的工具进行代码混淆,不设置则默认值为full,即将该工程代码全部混淆
- include $(BUILD_PACKAGE)
- include $(call all-makefiles-under,$(LOCAL_PATH))
然后修改build下的mk文件,增加蓝牙模块,这样在源码根目录下执行make就会编译到Bluetooth模块
\build\target\product\generic_no_telephony.mk
- PRODUCT_PACKAGES := \
- DeskClock \
- Bluetooth \ #增加蓝牙模块
- Calculator \
b.apk编译,针对没有源码的第三方apk,修改Android.mk:
- LOCAL_PATH := $(call my-dir)
- include $(CLEAR_VARS)
- # Module name should match apk name to be installed
- LOCAL_MODULE := Animation
- LOCAL_MODULE_TAGS := optional
- LOCAL_SRC_FILES := Animation.apk
- LOCAL_MODULE_CLASS := APPS
- LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
- LOCAL_CERTIFICATE := PRESIGNED
- include $(BUILD_PREBUILT)
- PRODUCT_PACKAGES +=\
- PackageInstallerRenew\
- Video\
- TlrService\
- Animation\ #添加Animation模块
二,如何删除app,使当前app不会编进系统
在packages/apps目录下有安卓原生的app,有一些app是不需要的。
LOCAL_PACKAGE_NAME packages\apps\Bluetooth\Android.mk
- LOCAL_SRC_FILES := \
- $(call all-java-files-under, src)
- LOCAL_PACKAGE_NAME := Bluetooth5 #将Bluetooth重命名为Bluetooth5。也可更改generic_no_telephony.mk
- #保证和generic_no_telephony.mk增加的模块名字不一致即可
- LOCAL_CERTIFICATE := platform
版权声明:本文为博主原创文章,未经博主允许不得转载。
转载地址:https://linus.blog.csdn.net/article/details/49003307 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月23日 02时27分59秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
tf keras Dense源码解析
2019-04-30
tf rnn输入输出的维度和权重的维度
2019-04-30
检验是否服从同一分布
2019-04-30
tf callbacks
2019-04-30
keras、tf、numpy实现logloss对比
2019-04-30
Ubuntu20.04安装微信
2019-04-30
Restful风格的使用
2019-04-30
Swagger基础入门整合SpringBoot
2019-04-30
MyBatisPlus简单入门(SpringBoot)
2019-04-30
攻防世界web进阶区NewsCenter详解
2019-04-30
攻防世界web进阶PHP2详解
2019-04-30
如何解决词达人问题(新)
2019-04-30
攻防世界web进阶区surpersqli详解
2019-04-30
攻防世界web进阶区easytornado详解
2019-04-30
攻防世界web进阶区web2详解
2019-04-30
xss-labs详解(上)1-10
2019-04-30
xss-labs详解(下)11-20
2019-04-30
攻防世界web进阶区ics-05详解
2019-04-30
攻防世界web进阶区FlatScience详解
2019-04-30
攻防世界web进阶区ics-04详解
2019-04-30