如何将Android应用程序编译至image/rom中

本文详细介绍了如何将Android应用程序编译至image/rom中,使其成为系统应用。首先搭建Ubuntu 10.10和Android 2.2的编译环境,然后将应用程序复制到source tree的特定目录并添加Android.mk文件,接着修改/bulid/target/product/generic.mk将工程添加到系统包中。通过这个过程,应用程序会被安装在/system/app下,不可卸载。
摘要由CSDN通过智能技术生成

      有时我们希望将自己的Android应用程序编译至image/rom中,这样程序将被安装至/system/app目录下,并且不能被卸载。下面我以自己的程序TestJniApp为例子,仿照源代码中自带的SimpleJNI,演示一下怎样将自己的应用程序编译至rom中。

 

1.    搭建编译环境

编译环境: Ubuntu 10.10
Android版本:Android 2.2

编译过程中可能需要在Ubuntu上安装必要的一些软件,我安装过的包含如下软件,不同的系统可能会有差别:
jdk6(Android官方建议装jdk5,但是我在编译时会遇到Java override问题,改用6没有任何问题), bison, lib64z1-dev, libasound2-dev, flex, gperf, libncurses5-dev

 

2.    应用程序存放目录

      SimpleJNI是采用Android NDK和Java编写的程序,包含apk和so库文件,它的源代码在source tree的development/samples/目录下。
      实际上package在编译时所放的目录并没有明确限定,编译后apk和so存放的位置是根据目录下Android.mk所指定的编译类型所决定的,例如:

  • SimpleJNI根目录下的Android.mk中有一行include $(BUILD_PACKAGE),表示将该目录下的模块编译成package,即apk文件,默认存放的位置为/system/app。
  • SimpleJNI/jni目录下的Android.mk中有一行为include $(BUILD_SHARED_LIBRARY),表示将该目录下的native.cpp编译为共享库文件,即so文件,默认存放的位置为/system/lib


      因此,如果我们想要将自己编写的程序编译至image中,只需要将Eclipse下完成的整个工程copy到source tree下的某个目录即可,我一般习惯放到packages/apps下。

 

3.    添加Android.mk

完成了上一步,可以知道,Android.mk在编译中起着至关重要的作用,这其实就是Android编译环境中的make file。为了完成我们的工作,需要在源代码中添加Android.mk。添加自己的Android.mk可以仿照SimpleJNI中的Android.mk,稍微修改即可。我们首先看看SimpleJNI目录下的两个Android.mk的内容:

  • 目录下的Android.mk

TOP_LOCAL_PATH:= $(call my-di

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值