编译运行自定义系统应用

在android studio中新建了一个HelloWorld的应用程序,想要把它变为系统级别的应用。现在记录一下转换过程,以及遇到的一些坑。

第一步:在android源码目录/packages/app下面建立HelloWorld文件夹,把/main/*下面的所有文件夹或文件:java,res,libs和AndroidManifest.xml复制粘贴到packages/apps/HelloWorld目录下。把java文件夹的名字改为src,千万不能忘记,不然运行时候会出现找不到类的异常。
第二步:在目录下新建Android.mk文件。.mk文件是android系统中非常重要的编译配置文件。具体语法以及作用如下
 

mk文件的作用


.mk文件的常见属性配置及其作用

第三步:修改在编译过程中会用到的.mk文件,通常是androidsrc/build/target/product/core.mk文件,在PRODUCT_PACKAGES应用列表中追加上HelloWorld应用。
第四步:1、source ./build/envsetup.sh (加载命令列表)
2、lunch      
3、make HelloWorld (编译单独的模块)
4、make snod (重新打包一下system.img文件)
5、emulator(启动模拟器,这样我们就能看到我们添加的app了)
注意有几个坑:
1、layout中所有的text要在string.xml中配置和引用,不然编译时候会出现text内容未定义的异常
2、所有引用的第三方库必须以jar、aar、so的形式放到libs文件夹下,并且在Android.mk文件中加以说明和引用,不然编译时会出现异常。
3、把java文件夹的名字改为src,千万不能忘记,不然运行时候会出现找不到类的异常。

你可能感兴趣的:(编译运行自定义系统应用)