有时候我们需要在源码环境中增加自己的应用或模块,随ROM一起发布。

下面讲述相关步骤:

1. 首先可以在SDK环境下进行编码设计(如果你的APP不涉及到emulator无法模拟的硬件的话)

也可以参考另一篇文章,直接在Eclipse中调试系统级应用源代码:

Android:基于Eclipse编译调试系统级应用源代码

2. 在SDK环境基本调试OK

3. 将源代码复制到 $Android_Src/packages/apps/目录下,假设你的模块为 MyApplication

4. 在MyApplication目录下新建一个Android.mk文件,可以从android自带的App下复制过来修改,如Calculator2下面的Android.mk,CleanSpec.mk也一并复制过来

5. 修改Android.mk:

  1. LOCAL_PATH := $(call my-dir)
  2. include $(CLEAR_VARS)
  3. LOCAL_MODULE_TAGS := optional
  4. #import gson lib
  5. LOCAL_STATIC_JAVA_LIBRARIES := libgson
  6. LOCAL_SRC_FILES := $(call all-java-files-under, src)
  7. LOCAL_SDK_VERSION := current
  8. LOCAL_PACKAGE_NAME := MyApplication
  9. include $(BUILD_PACKAGE)
  10. ##################################################
  11. include $(CLEAR_VARS)
  12. #Add gson support
  13. LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libgson:libs/gson-2.2.2.jar
  14. include $(BUILD_MULTI_PREBUILT)
  15. # Use the folloing include to make our test apk.
  16. include $(call all-makefiles-under,$(LOCAL_PATH))

6. 修改 $Android_Src/build/target/product/common.mk

  1. #andy@2012.9.19,same as LOCAL_PACKAGE_NAME defined in Android.mk
  2. PRODUCT_PACKAGES += MyApplication
  3. #add before this line
  4. $(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)中的更多相关文章

  1. Android:源码环境下移植第三方的apk内置到ROM(System Image)中

    1. 首先在vendor目录下新建一个the3rdapk的目录,将需要内置的apk丢进去,目录名自己随意定. 2. 在 build/target/product/common.mk最后面,在$(cal ...

  2. android源码环境下用mmm/mm编译模块,输出编译log到文件的方法

    android源码环境下用mmm/mm编译模块,输出编译log到文件的方法 1,在android目录下直接用mmm命令编译, log信息保存在android目录下 mmm packages/apps/ ...

  3. 在Android源码下编译jni所需要知道的事~

    以下只是自己的一些总结,欢迎讨论 通过NDK编译jni网上有很多例子,在这我只总结在Android源码下编译 1.android源码环境下编译so包,编出来的.so的包前面不会自动给添加lib,NDK ...

  4. 在android源码环境下写上层应用的一个初步解决方法

    在android源码环境下编写上层应用,一直以来我都觉得很麻烦.因为如果单纯将应用导入eclipse,那么framework层一些定制的API无法自动提示和补全,使用起来不太方便:如果将整个andro ...

  5. ubuntu10.04版本下android源码的编译

    首先是网址:http://software.intel.com/en-us/blogs/2012/03/06/hands-on-notesbuild-android-x86-ics-4-virtual ...

  6. 通过清华大学镜像下载Android源码并编译源码

    之前看源码都是在Windows下用SourceInsight看,虽然达到了研究源码的效果,但终究还是有遗憾...趁着周末,准备在Ubuntu虚拟机上下载编译源码. 之前下源码时,有了解一些Androi ...

  7. Android源码下编译APK步骤

    1.进入android源码目录下的build下执行:source envsetup.sh 后继续在该路径下执行lunch. 2.编写完成工程 3.编写Android.mk文件,放入工程目录下     ...

  8. Android源码的编译和下载【转】

    本文转载自:http://blog.csdn.net/banketree/article/details/9089827 网上介绍下载.编译Android方法一坨,读万卷书不如行万里路,以下是笔者亲身 ...

  9. Android源码环境生成Android SDK并导入Adnroid Studio

    1.发现问题 之前使用Repo同步Android源码使用的是下面这条指令,即同步的是分支android-7.1.2_r18的代码 repo init -u https://mirrors.tuna.t ...

随机推荐

  1. LINQ实现行列转换

    用SQL语句实现行列转换很容易,但也有时候需要在程序中实现,找了好久,发现一篇文章写的挺不错的 http://blog.csdn.net/smartsmile2012/article/details/ ...

  2. JavaSE_ 反射 目录(27)

    JavaSE学习总结第27天_反射 & 设计模式 & JDK5.7.8新特性27.01 反射_类的加载概述和加载时机27.02 反射_类加载器的概述和分类27.03 反射_反射概述27 ...

  3. 2045不容易系列之(3)—— LELE的RPG难题

    Problem Description人称“AC女之杀手”的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多“Cole”(LELE的粉丝,即”可乐”),经过多方打探,某资深Cole终于知道了原因,原 ...

  4. js中||和&&的用法

    在js中&&.||不一定都是用来判断一个表达式的逻辑值是true.false,更多的是用来依据真值或者假值执行相应操作! a() && b() :如果执行a()后返回t ...

  5. jquery获取多个checkbox的值异步提交给php

    html代码: <tr> <td><input type="checkbox" name="uid" value="&l ...

  6. python 10 min系列三之小爬虫(一)

    python10min系列之小爬虫 前一篇可视化大家表示有点难,写点简单的把,比如命令行里看论坛的十大,大家也可以扩展为抓博客园的首页文章 本文原创,同步发布在我的github上 据说去github右 ...

  7. Sublime 编辑器主题

    Sublime主题分为两种 一种是编辑框中的代码的颜色  另一种是编辑器本身的颜色(不只是颜色哟  Sublime编辑器左边侧边栏的字很小对不对 !有了主题就可以改) 这个主题叫做Soda  http ...

  8. Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.

    2016-07-18 16:08:20 [main:53] - [WARN] Exception encountered during context initialization - cancell ...

  9. 查看LINUX系统版本和硬件信息

    查看发行版本 # cat /etc/issue Red Hat Enterprise Linux Server release 6.2 (Santiago) 查看内核 # uname -a Linux ...

  10. Android 建造者(Builder)模式

    关于 Builder 模式 详述:http://blog.csdn.net/jjwwmlp456/article/details/39890699 先来张图 看到 Android  中 使用了 Bui ...