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 ...
随机推荐
- LINQ实现行列转换
用SQL语句实现行列转换很容易,但也有时候需要在程序中实现,找了好久,发现一篇文章写的挺不错的 http://blog.csdn.net/smartsmile2012/article/details/ ...
- JavaSE_ 反射 目录(27)
JavaSE学习总结第27天_反射 & 设计模式 & JDK5.7.8新特性27.01 反射_类的加载概述和加载时机27.02 反射_类加载器的概述和分类27.03 反射_反射概述27 ...
- 2045不容易系列之(3)—— LELE的RPG难题
Problem Description人称“AC女之杀手”的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多“Cole”(LELE的粉丝,即”可乐”),经过多方打探,某资深Cole终于知道了原因,原 ...
- js中||和&&的用法
在js中&&.||不一定都是用来判断一个表达式的逻辑值是true.false,更多的是用来依据真值或者假值执行相应操作! a() && b() :如果执行a()后返回t ...
- jquery获取多个checkbox的值异步提交给php
html代码: <tr> <td><input type="checkbox" name="uid" value="&l ...
- python 10 min系列三之小爬虫(一)
python10min系列之小爬虫 前一篇可视化大家表示有点难,写点简单的把,比如命令行里看论坛的十大,大家也可以扩展为抓博客园的首页文章 本文原创,同步发布在我的github上 据说去github右 ...
- Sublime 编辑器主题
Sublime主题分为两种 一种是编辑框中的代码的颜色 另一种是编辑器本身的颜色(不只是颜色哟 Sublime编辑器左边侧边栏的字很小对不对 !有了主题就可以改) 这个主题叫做Soda http ...
- Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
2016-07-18 16:08:20 [main:53] - [WARN] Exception encountered during context initialization - cancell ...
- 查看LINUX系统版本和硬件信息
查看发行版本 # cat /etc/issue Red Hat Enterprise Linux Server release 6.2 (Santiago) 查看内核 # uname -a Linux ...
- Android 建造者(Builder)模式
关于 Builder 模式 详述:http://blog.csdn.net/jjwwmlp456/article/details/39890699 先来张图 看到 Android 中 使用了 Bui ...