写一个android内置android程序

当我们编译完成android源码之后,就需要对他做点什么事情,我现在正在看老罗的”Android源代码情景分析”一书,在这里主要是记录一些书中没有说清楚的地方.

同样,我们创建一个HelloWorld程序,下面看一下我的目录结构.

写一个android内置android程序_第1张图片

然后我们就像平时开发android程序一样,在第一个界面中放置一个 Hello World字符串,然后在自己的手机中测试一下,运行成功.好了,后面的工作比较重要.

在这里记录一下Android.mk里面的内容,这个是必须要有的,因为mmm编译的话,需要找到mk文件进行编译.

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := HelloAndroid
include $(BUILD_PACKAGE)

我们将这个android工程复制到android源码目录下的/packages/experimental目录中,将HelloWorld项目中gen目录和bin目录中的内容清空.这一步非常重要,要不然就会编译错误.同时,目前我还不知道如果有外部依赖的话,如何去编译这个项目.

下面我们导入单独编译模块的mmm命令.按照老罗的思路,在命令行模式下,进入android源码根目录,执行命令:

source ./build/envsetup.sh

这样,我们就可以使用mmm命令了,我们看一下mmm命令还可以做什么事情.使用下面的命令查看mmm命令的帮助文档.

mmm -help

写一个android内置android程序_第2张图片

一般情况下基本上就是在mmm命令后面添加程序所在的目录路径即可.

mmm ./packages/experimental/HelloWorld/

编译完成之后,我们就可以使用make snod命令重新打包Android系统镜像文件了.

make snod

编译完成之后,我们重新运行emulator,就可以看到我们的HelloWorld成为了我们android的内置程序了.

写一个android内置android程序_第3张图片

你可能感兴趣的:(Make,mmm,Android编译,snod)