Android:源码环境编译自定义的APP到ROM(System Image)中

有时候我们需要在源码环境中增加自己的应用或模块,随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:

[html] view plaincopy

  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

[html] view plaincopy

  1. #[email protected],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)中

时间: 2024-10-08 10:45:18

Android:源码环境编译自定义的APP到ROM(System Image)中的相关文章

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

1. 首先在vendor目录下新建一个the3rdapk的目录,将需要内置的apk丢进去,目录名自己随意定. 2. 在 build/target/product/common.mk最后面,在$(call inherit-product, $(SRC_TARGET_DIR)/product/core.mk) 之前加入你的apk 第一部分是是本地apk的路径,/system/app/表示复制到system image的相关目录. 如果没有第二部分,则会出现以下编译错误: build/core/pro

android源码的编译问题总结

由于目前的项目需要修改android的内核源码,所以我需要从android源码的编译开始学习. 下面看一下我的编译环境. 我使用的Ubuntu系统的版本是14.04,64位. gcc版本:4.8.8 编译过程我是看着google开发者官网,以及结合别人的博客进行编译的.编译的过程会遇到很多问题,在这里,我就把我遇到的问题总结一些,以便以后用到的时候容易查看,也方便别人编译android的时候遇到相同的问题,便于查看. 问题一:java版本问题 这个问题描述的是我当前使用的java版本是"1.7&

【Android源码解析】 自定义可清除的输入框

今天给大家分享一下这个关于Edittext,之前用到过要求能一键清除的输入框,想了一下思路,可以在输入框的旁边放一个小的清除图片,然后给Edittext和清除的小图片放到布局中,给布局来一个背景图片,看起来也比较美观的,然后根据edittext.getText().length来设置小图片是否可见,觉得也还行.但是随着自己见得多了就发现这样虽然也能实现,真的很水,所以就想着自定义一个能清除的Edittext. 下面说一下自己的思路: 1.首先自定义组件继承edittext 2.重写构造方法,初始

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

1,在android目录下直接用mmm命令编译, log信息保存在android目录下 mmm packages/apps/模块名 -j4 2>&1 | tee build_qchat.log 2,在模块路径下用mm命令编译,log信息保存在模块路径下 mm -j8 2>&1 | tee build_qchat.log

更改android源码并编译遇到的问题

问题一:没必要每次都编译所有的代码 可以使用mm命令和mmm命令,mm命令是编译当前目录下的所有模块,以android.mk 来确定一个模块,也就是说一个模块有一个android.mk 文件,mmm命令是编译制定目录下的所有模块. 问题二:模块编译完成了,并没有写入system.img 镜像,还要运行make snod命令,才能将镜像重新生成 问题三:android 中的代码中的日志是可以显示的采用adb logcat *:I > 3.log 这句是指输出 所有Log.i 以上的日志

有关android源码编译的几个问题

项目用到编译环境,与源码有些差异不能照搬,关键是连源码都没编译过,下面基本上是行网上照的各种自学成才的分享,病急乱投医了,都记在下面作为参照吧. 1.验证是否编译正确,在终端执行 emulator & (注:可进入${ANDROID_PRODUCT_OUT}目录,后执行 emulator -image system.img -data userdata.img -ramdisk ramdisk.img) 模拟器能正常启动则表明编译成功 Android源码编译调试详解  Android2.2的,有

android源码编译1

一.环境说明: 1.liunx系统:Ubuntu12.04 2.jdk:sun-java6-jdk 3.g++4.5 gcc4.5 二.android源码的目录结构 |-- Makefile |-- bionic (bionic C库) |-- bootable (启动引导相关代码) |-- build (存放系统编译规则及generic等基础开发包配置) |-- cts (Android兼容性测试套件标准) |-- dalvik (dalvik JAVA虚拟机) |-- development

完整版linux下android源码下载、编译、模拟器启动运行

一.环境说明: 1.VMware版本:8.0.3 build-703057 2.liunx系统:Ubuntu10.10 3.jdk:sun-java6-jdk 二.Ubuntu 10.10更新源列表 由于??Ubuntu 10.10版本的源已经过期了,所以,需要对其进行更新,Ubuntu 10.10 已经发布了,下面提供更新源方法与更新源列表地址: 1.sudo gedit /etc/apt/sources.list     编辑你的源列表,将原来的内容全部删除,添加下面的源,复制到你的列表中,

【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/51592930 手机的两种模式 : 在下面有详细的图片示例; -- Recovery 模式 : 音量键增加 + 电源键, 长按上述组合键, 看到 "MI" 的 LOGO 后即进入 Recovery 模式; -- Fastboot 模式 : 音量键减小 + 电源键, 长按上述组合键, 看到 "FASTBOOT" 后, 即 进入 FA