Android:源码环境编译自定义的APP到ROM(System Image)中
有时候我们需要在源码环境中增加自己的应用或模块,随ROM一起发布。
下面讲述相关步骤:
1. 首先可以在SDK环境下进行编码设计(如果你的APP不涉及到emulator无法模拟的硬件的话)
也可以参考另一篇文章,直接在Eclipse中调试系统级应用源代码:
2. 在SDK环境基本调试OK
3. 将源代码复制到 $Android_Src/packages/apps/目录下,假设你的模块为 MyApplication
4. 在MyApplication目录下新建一个Android.mk文件,可以从android自带的App下复制过来修改,如Calculator2下面的Android.mk,CleanSpec.mk也一并复制过来
5. 修改Android.mk:
- LOCAL_PATH := $(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_MODULE_TAGS := optional
- #import gson lib
- LOCAL_STATIC_JAVA_LIBRARIES := libgson
- LOCAL_SRC_FILES := $(call all-java-files-under, src)
- LOCAL_SDK_VERSION := current
- LOCAL_PACKAGE_NAME := MyApplication
- include $(BUILD_PACKAGE)
- ##################################################
- include $(CLEAR_VARS)
- #Add gson support
- LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libgson:libs/gson-2.2.2.jar
- include $(BUILD_MULTI_PREBUILT)
- # Use the folloing include to make our test apk.
- include $(call all-makefiles-under,$(LOCAL_PATH))
6. 修改 $Android_Src/build/target/product/common.mk
- #andy@2012.9.19,same as LOCAL_PACKAGE_NAME defined in Android.mk
- PRODUCT_PACKAGES += MyApplication
- #add before this line
- $(call inherit-product, $(SRC_TARGET_DIR)/product/core.mk)
7.编译:
. /build/envsetup.sh
mmm packages/apps/MyApplication
make snod
或全编译
生成的apk在 out/target/product/相关目录下,跟具体的项目相关
在ROM中会在/system/app下
FAQ:
Q:编译时出现android lasses-full-debug.jar] Error 41
A:将该模块目录下的gen和bin目录删除后编译
基于第三方apk内置到ROM参考另外一篇文章:
Android:源码环境下移植第三方的apk内置到ROM(System Image)中
Android:源码环境编译自定义的APP到ROM(System Image)中的更多相关文章
- Android:源码环境下移植第三方的apk内置到ROM(System Image)中
1. 首先在vendor目录下新建一个the3rdapk的目录,将需要内置的apk丢进去,目录名自己随意定. 2. 在 build/target/product/common.mk最后面,在$(cal ...
- android源码环境下用mmm/mm编译模块,输出编译log到文件的方法
android源码环境下用mmm/mm编译模块,输出编译log到文件的方法 1,在android目录下直接用mmm命令编译, log信息保存在android目录下 mmm packages/apps/ ...
- 在Android源码下编译jni所需要知道的事~
以下只是自己的一些总结,欢迎讨论 通过NDK编译jni网上有很多例子,在这我只总结在Android源码下编译 1.android源码环境下编译so包,编出来的.so的包前面不会自动给添加lib,NDK ...
- 在android源码环境下写上层应用的一个初步解决方法
在android源码环境下编写上层应用,一直以来我都觉得很麻烦.因为如果单纯将应用导入eclipse,那么framework层一些定制的API无法自动提示和补全,使用起来不太方便:如果将整个andro ...
- ubuntu10.04版本下android源码的编译
首先是网址:http://software.intel.com/en-us/blogs/2012/03/06/hands-on-notesbuild-android-x86-ics-4-virtual ...
- 通过清华大学镜像下载Android源码并编译源码
之前看源码都是在Windows下用SourceInsight看,虽然达到了研究源码的效果,但终究还是有遗憾...趁着周末,准备在Ubuntu虚拟机上下载编译源码. 之前下源码时,有了解一些Androi ...
- Android源码下编译APK步骤
1.进入android源码目录下的build下执行:source envsetup.sh 后继续在该路径下执行lunch. 2.编写完成工程 3.编写Android.mk文件,放入工程目录下 ...
- Android源码的编译和下载【转】
本文转载自:http://blog.csdn.net/banketree/article/details/9089827 网上介绍下载.编译Android方法一坨,读万卷书不如行万里路,以下是笔者亲身 ...
- Android源码环境生成Android SDK并导入Adnroid Studio
1.发现问题 之前使用Repo同步Android源码使用的是下面这条指令,即同步的是分支android-7.1.2_r18的代码 repo init -u https://mirrors.tuna.t ...
随机推荐
- Hibernate中,left join、inner join以及left join fetch区别(转)
标签: hibernate hql inner join left right 杂谈 分类: SQL 原文地址:http://m33707.iteye.com/blog/829725 Select F ...
- BZOJ 2208: [Jsoi2010]连通数( DFS )
n只有2000,直接DFS就可以过了... -------------------------------------------------------------------------- #in ...
- servlet操作数据库
工具:myeclipse 数据库工具:mysql java ee操作数据库,首先要导入数据库驱动文件,我用的是mysql 刚开始,很多人代码正确但是就是连接不上,原因就是忘了驱动文件的导入. 我的驱动 ...
- jackson的简单实用实例(json)
一个json格式的字符串比如: {"status":10001,"code":"HDkGzI","pubkey":&qu ...
- Java "==和equals区别" 示例
import java.util.Calendar; import java.util.Date; import java.util.Locale; public class test { publi ...
- Aone新拉分支
1.进入Aone新建项目 2.测试人员填huyangjun和husong 3.进入后拉分支 4.弄个日常普通环境 5.吧环境跑起,绑定Host就可以
- C#计算时间差。
C#中怎么计算两时间相差多少.计算2个时间之间的差,可以计算到时分秒! <1>label1.Text = “2004-1-1 15:36:05″;label2.Text = “2004-3 ...
- The process "E:\Qt\4.8.5\bin\qmake.exe" exited with code 2.(不能包含中文路径,qmake够弱智的)
打开某个项目的时候,编译出现类似的错误 21:46:44: The process "E:\Qt\4.8.5\bin\qmake.exe" exited with code 2. ...
- Failure [INSTALL_FAILED_OLDER_SDK]
在AndroidManifest.xml 中把 <uses-sdk android:minSdkVersion="21" />的版本调节的低一点
- perl5 附录一 函数集(未定稿)
附录一 函数集(未定稿) by flamephoenix 一.进程处理函数 1.进程启动函数 2.进程终止函数 3.进程控制函数 4.其它控制函数二.数学函数三.字符串处理函数四.标量转换函数 ...