android之APP模块编译

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

一,如何把app编进系统

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

    packages\apps\Bluetooth

[html] view plaincopy
  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] view plaincopy
  1. PRODUCT_PACKAGES := \  
  2.     DeskClock \  
  3.     Bluetooth \     #增加蓝牙模块  
  4.     Calculator \  

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

[html] view plaincopy
  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] view plaincopy
  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] view plaincopy
  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 ,或者置空。

   


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Pytorch神经网络理论篇】 16 过拟合问题的优化技巧(三):批量归一化

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

【Pytorch神经网络理论篇】 17 循环神经网络结构:概述+BP算法+BPTT算法

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

Android 闹钟

需求:新的平台要实现关机启动,所以要了解一下闹钟的机制 这个链接写得比较详细(我只是动手试了试,毕竟应用不是专长):http://www.cnblogs.com/mengdd/p/3819806.html 1、AlarmManager 这个是…

【Pytorch神经网络理论篇】 18 循环神经网络结构:LSTM结构+双向RNN结构

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

DWR之初尝

---恢复内容开始--- 准备公工作 1.去官网下载jar和war 开发工具 eclipse 开始开发:gogogo 1:建立一个可以跑起来的javaweb项目,最基本的就可以了. 2:导入commons-logging-1.0.4.jar,dwr.jar 3:在web.xml里配置一下 <?xml version"1.0" encoding"UTF-8"…

jni调试

&#xff11;&#xff12;年的时候写过&#xff2a;&#xff2e;&#xff29;但是又忘记得差不多了&#xff0c;现在重新写了一次&#xff0c;发现碰到了几个问题&#xff0c;写下来记录一下 第一步 应用程序java代码 package com.example.helloworld;import java.util.Calend…

【Pytorch神经网络理论篇】 19 循环神经网络训练语言模型:语言模型概述+NLP多项式概述

同学你好&#xff01;本文章于2021年末编写&#xff0c;获得广泛的好评&#xff01; 故在2022年末对本系列进行填充与更新&#xff0c;欢迎大家订阅最新的专栏&#xff0c;获取基于Pytorch1.10版本的理论代码(2023版)实现&#xff0c; Pytorch深度学习理论篇(2023版)目录地址…

B. Code For 1 一个类似于线段树的东西

http://codeforces.com/contest/768/problem/B 我的做法是&#xff0c;观察到&#xff0c;只有是x % 2的情况下&#xff0c;才有可能出现0 其他的&#xff0c;都是1来的&#xff0c;所以开始的ans应该是R - L 1 那么现在就是要看那些是x % 2的&#xff0c;然后放在的位置是属于…

解码错误。‘gb2312‘ codec can‘t decode byte 0xf3 in position 307307: illegal multibyte sequence

一般在decode加errors"ignore"就可以了。例如&#xff1a; decode(gb2312,errors ignore)

常见排序算法的C#实现

排序算法常见的有直接排序、冒泡排序、快速排序、基数排序、归并排序等&#xff0c;下面是实现的代码&#xff0c;仅供参考。 #region DirectSort/// <summary>/// 直接排序./// 第一次从R[0]~R[n-1]中选取最小值&#xff0c;与R[0]交换&#xff0c;/// 第二次从R[1]~R[n…

Android RTC 自下往上浅析

1.首先搞清楚RTC在kernel内的作用: linux系统有两个时钟&#xff1a;一个是由主板电池驱动的“Real Time Clock”也叫做RTC或者叫CMOS时钟&#xff0c;硬件时钟。当操作系统关机的时候&#xff0c;用这个来记录时间&#xff0c;但是对于运行的系统是不用这个时间的。 另一个时间…

【Pytorch神经网络实战案例】11 循环神经网络结构训练语言模型并进行简单预测

1 语言模型步骤 简单概述&#xff1a;根据输入内容&#xff0c;继续输出后面的句子。 1.1 根据需求拆分任务 (1)先对模型输入一段文字&#xff0c;令模型输出之后的一个文字。(2)将模型预测出来的文字当成输入&#xff0c;再放到模型里&#xff0c;使模型预测出下一个文字&…

需要换个环境

感觉需要换个环境了&#xff0c;最近动力越来越小&#xff0c;会死于安乐的&#xff01; 做c/c开发&#xff0c;服务器客户端都可以&#xff0c;其他语言java、pathon多少都会一些&#xff0c; 祈求可以找到一份让自己会全力付出的工作&#xff01; 加油&#xff01;加油&#…

【Pytorch神经网络理论篇】 20 神经网络中的注意力机制

同学你好&#xff01;本文章于2021年末编写&#xff0c;获得广泛的好评&#xff01; 故在2022年末对本系列进行填充与更新&#xff0c;欢迎大家订阅最新的专栏&#xff0c;获取基于Pytorch1.10版本的理论代码(2023版)实现&#xff0c; Pytorch深度学习理论篇(2023版)目录地址…

Android Alarm自上而下 调试浅析

1.为了创建一个新的Alarm&#xff0c;使用set方法并指定一个Alarm类型、触发时间和在Alarm触发时要调用的Intent。如果你设定的Alarm发生在过去&#xff0c;那么&#xff0c;它将立即触发。 这里有4种Alarm类型。你的选择将决定你在set方法中传递的时间值代表什么&#xff0c;是…

【Pytorch神经网络实战案例】12 利用注意力机制的神经网络实现对FashionMNIST数据集图片的分类

1、掩码模式&#xff1a;是相对于变长的循环序列而言的&#xff0c;如果输入的样本序列长度不同&#xff0c;那么会先对其进行对齐处理&#xff08;对短序列补0&#xff0c;对长序列截断&#xff09;&#xff0c;再输入模型。这样&#xff0c;模型中的部分样本中就会有大量的零…

echarts自学笔记

学习echarts的总结 一、图表的实现 (1)首先将echarts.js引入为echarts提供一个DOM容器&#xff08;具有宽高&#xff09;为echarts配置参数:第一步&#xff1a;初始化DOM容器&#xff0c;用echarts.init()函数第二步&#xff1a; 配置数据选项var option{ title:{},//图表的标…

爬虫实战学习笔记_4 网络请求urllib3模块:发送GET/POST请求实例+上传文件+IP代理+json+二进制+超时

1 urllib3模块简介 urllib3是一个第三方的网络请求模块&#xff08;单独安装该模块&#xff09;&#xff0c;在功能上比Python自带的urllib强大。 1.1了解urllib3 urllib3库功能强大&#xff0c;条理清晰的用于HTTP客户端的python库&#xff0c;提供了很多Python标准库里所没…

Android wakelock 自上而下浅析

Wake Lock是一种锁的机制, 只要有人拿着这个锁,系统就无法进入休眠,可以被用户态程序和内核获得. 这个锁可以是有超时的或者是没有超时的,超时的锁会在时间过去以后自动解锁. 如果没有锁了或者超时了, 内核就会启动休眠的那套机制来进入休眠.PowerManager.WakeLock 有加锁和解锁…

C. Jon Snow and his Favourite Number DP + 注意数值大小

http://codeforces.com/contest/768/problem/C 这题的数值大小只有1000&#xff0c;那么可以联想到&#xff0c;用数值做数组的下标&#xff0c;就是类似于计数排序那样子。。 这样就可以枚举k次操作&#xff0c;然后for (int i 0; i < 1025; i)&#xff0c;也就是O(1000 *…