有时候我们需要在源码环境中增加自己的应用或模块,随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. 获取当前WEB应用全路径

    <%String path = request.getContextPath();String basePath =request.getScheme()+"://"+req ...

  2. BZOJ 1208: [HNOI2004]宠物收养所(BST)

    本来想先用set写一遍,再自己写个splay或treap,不过用set过了之后就懒得去写了....以后有空再来写吧..(不会有空的吧= = ------------------------------ ...

  3. Lucence.net索引技术 一

    1.建立索引 为了对文档进行索引,Lucene 提供了五个基础的类,他们分别是 Document, Field, IndexWriter, Analyzer, Directory.下面我们分别介绍一下 ...

  4. elasticsearch-5.0.0初见

    基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 接近实时(NRT) Elasticsearch是一个接近实时的搜索平台.这意味着,从索引一个文档 ...

  5. IOS 学习笔记(1) 视图UIViewController

    1.UIViewController *newController=[[UIViewController alloc] initWithNibName:@"XXX" bundle: ...

  6. pyrailgun 0.24 : Python Package Index

    pyrailgun 0.24 : Python Package Index pyrailgun 0.24 Download pyrailgun-0.24.zip Fast Crawler For Py ...

  7. 非常可乐(bfs)

    非常可乐 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  8. 详解虚拟机(windows)下搭建SVN服务器

    安装前的准备 1.虚拟机的用户名最好是英文 2.严格按照步骤做,否则有可能不成功 3.如果安装失败,在虚拟机下的控制板完全下载VisualSVN-Server-2.7.7,重新安装 软件下载地址: h ...

  9. CentOS7 安装JDK

    链接地址:http://jingyan.baidu.com/article/c74d60007b85510f6a595dfa.html VMware 10 centos 安装jdk 及mysql 方法 ...

  10. ThinkPHP第十二天(Import导入第三方类库方法,独立分组文件夹结构)

    1.Import(路径+类名,基础路径): 平时导入类时有三种基础路径:Think:import('Think.core.Action');Think表示ThinkPHP/Lib基础路径,完整路径为T ...