Android 4.3 系统裁剪——删除不使用的app及添加自己app
删除不使用的apk
系统自带的app位置是在/android4.3/packages/apps
以下是一些APP作用分析:
| |– BasicSmsReceiver
| |– Bluetooth (蓝牙)
| |– Browser (浏览器)
| |– Calculator (计算器)
| |– Calendar (日历)
| |– Camera (相机)
| |– CellBroadcastReceiver
| |– CertInstaller (在Android中安装数字签名。被调用)
| |– Contacts (拨号(调用)、联系人、通话记录)
| |– ContactsCommon
| |– DeskClock (桌面时钟)
| |– Dialer
| |– Email (Email)
| |– Exchange
| |– Gallery (相冊。和Camera相似,多了列表)
| |– Gallery2
| |– HTMLViewer (浏览器附属界面。被浏览器应用调用。同一时候提供存储记录功能)
| |– KeyChain
| |– Launcher2 (登陆启动项,负责应用的调用)
| |– LegacyCamera
| |– Mms (?彩信业务)
| |– Music (音乐播放器)
| |– MusicFX
| |– Nfc
| |– OneTimeInitializer
| |– PackageInstaller (安装、卸载程序的响应)
| |– Phone (电话拨号程序)
| |– PhoneCommon
| |– Protips
| |– QuickSearchBox
| |– Settings (开机设定,包括电量、蓝牙、设备信息、界面、wifi等)
| |– SmartCardService
| |– SoundRecorder (录音机。可计算存储所需空间和时间)
| |– SpeechRecorder
| |– Stk
| |– Tag
| |– VideoEditor
| |– VoiceDialer (语音识别通话)
对于不须要的app,
/out/target/product/m801/system/app删除相应apk。
到/packages/apps找到相应源代码。改动.mk
然后又一次编译。
下次抽时间琢磨一下:
SystemServer.java 删除不须要的系统服务
init.rc 去除不须要依赖的程序
preload 屏蔽不须要的资源与类
google service
3d opengl、rendscript
增加自己定义的apk
有源代码的
1 从/packages/app/calendar下复制Android.mk到自己项目里。并改动内容:
LOCAL_PACKAGE_NAME := AutoRun
AutoRun是自己的app的名字
2 改动/build/target/product/generic_no_telephony.mk,增加自己apk名字:
(android2.2版本号改动的是generic.mk)
把包括Android.mk的源代码放到
android4.3/packages/apps
3 编译
命令行到项目根文件夹,运行:
source build/envsetup.sh
choosecombo(选择默认直接回车)
make -j2
也有说直接这样。我没有測试:
make clean
make
编译完毕后,启动虚拟机:
./emulator -avd androidname -system out/target/product/generic/system.img
单个模块编译的方法
$.build/envsetup.sh
mmm packages/apps/Contacts/ 演示样例编译联系人
这时生成
out/target/product/generic/data/app/ContactsTests.apk
out/target/product/generic/system/app/Contacts.apk
make snod 又一次生成system.img
第三方apk编译
使用yaffs2
今天没有时间搞了。下次再看详细做法。
Android 4.3 系统裁剪——删除不使用的app及添加自己app的更多相关文章
- Android系统裁剪:手把手教你如何进行系统裁剪
前言:android系统裁剪优化一直是各个厂商定制产品的关键步骤,包括浅层次的去除不必要的apk(android apk裁剪定制 )和深层次的裁剪整个编译系统和框架层. android作为开源系统 ...
- [Android] 图片裁剪总结——调用系统裁剪
花了两天时间看了下android的图片裁剪功能的实现.其实刚开始做这个我挺虚的,以为整个功能都需要自己写出来,但查了些资料,发现android已经提供了裁剪功能,需要的话自己调用就成了.soga,这下 ...
- [Android Pro] 调用系统相机和图库,裁剪图片
private static final int PHOTO_REQUEST_TAKEPHOTO = 1;// 拍照 private static final int PHOTO_REQUEST_GA ...
- Android监听系统短信数据库变化-提取短信内容
由于监听系统短信广播受到权限的限制,所以很多手机可能使用这种方式没法监听广播,从而没办法获取到系统短信,所以又重新开辟一条路. Android监听系统短信数据库内容变化使用场景: 1.监听短信数据库的 ...
- Android manifest之系统自带的permission
Android manifest之系统自带的permission 本文描述Android系统自带的permission.点击查看:“关于permission的原始定义和说明”.点击查看:“Androi ...
- Android 8.0系统的应用图标适配
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 参考资料<一起来学习Android 8.0系统的应用图标适配吧>中已经讲得很清楚了,这里我只是简单总结下.详情的内容请阅 ...
- Android如何安装系统应用,及自己增加安装系统应用的接口
根据SIM卡安装系统应用 功能: 1:如何安装系统应用,apk放在system/app系统分区下面. 2:根据SIM卡的归属国家选择性的安装应用. 一:本人使用方法: 在开机的服务里面添加接口(Pac ...
- 让Android程序获得系统的权限,实现关机重启,静默安装等功能
引用:http://www.cnblogs.com/welenwho/archive/2012/05/10/2494984.html android想要获得系统权限有几种途径,一种就是你的程序固化的系 ...
- 移动混合开发之android文件管理新建文件和删除文件
今天经过一天超过8小时的实践,有很多CSS上的细节需要注意: 1, /*注意是对before的操作*/ .content ul li .icon-check-empty:before{ display ...
随机推荐
- ActiveMQ学习笔记(11)----ActiveMQ的动态网络连接
1. 多播协议multicast ActiveMQ使用Multicast协议将一个Service和其他的Broker是我Service里连接起来.IP Multicast是一个被用于网络中传输数据到其 ...
- MySQL的concat以及group_concat的用法
一.concat()函数 1.功能:将多个字符串连接成一个字符串. 2.语法:concat(str1, str2,...) 返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为nu ...
- NOIp模拟赛三十一
持续降智 分数:100+0+0=100 C题subtask是假的,根本没有部分分中的情况...还我20分QAQ A:[BZOJ4444]国旗计划 B:[agc006f]blackout C:[arc0 ...
- JQ 添加节点和插入节点的方法总结
转载来源:http://blog.csdn.net/ss1106404013/article/details/49274345 添加节点的jQuery方法: append().prepend().ap ...
- UVA-1347 Tour 动态规划 难以确定的状态
题目链接:https://cn.vjudge.net/problem/UVA-1347 题意 给出按x坐标排序的几个点. 欲从最左边不回头的走到最右边,然后再返回最左边. 每个点都要被访问,且只能经过 ...
- [zjoi2016]小星星 (容斥+DP)
我们先用树形DP,求出选取集合S中的点,满足连通性的但是标号可重的方案数,贡献给F(i)(1\(\leq\)i\(\leq\)\(\mid S\mid\)),也就是我们要处理出F(i)代表取至多i个点 ...
- Linux 磁盘管理及分区
硬盘结构和基础知识 扇区(Sector)为最小的物理储存单位,每个扇区为512 bytes,将扇区组成一个圆就是磁道(track),不同磁盘的相同磁道组成磁柱(Cylinder),磁柱是分区(par ...
- linux中对socket的理解 socket高并发
1.socket是什么? 其实准确的来说,socket并不仅仅用于linux而已,它也应用于TCP/IP中.笼统的来说,socket就是指的“IP地址+端口号”.比如我有一个ssh服务器A,这时候我有 ...
- java读取excel文件内容
1.导入依赖JAR包 <!-- jxl 操作excel --> <dependency> <groupId>org.jxls</groupId> < ...
- javaweb实现教师和教室管理系统 java jsp sqlserver
1,程序设计思想 (1)设计三个类,分别是工具类(用来写连接数据库的方法和异常类的方法).信息类(用来写存储信息的方法).实现类(用来写各种操作数据库的方法) (2)定义两个jsp文件,一个用来写入数 ...