单独编译 framework/policies/ 模块
这个文件需要修改下Phone目录下的Android.mk文件:
- 1、 将 android.policy_phone中的_phone删掉
- 2、注释掉LOCAL_UNINSTALLABLE_MODULE := true 这句
修改后的文件内容如下:
LOCAL_MODULE := android.policy
#LOCAL_UNINSTALLABLE_MODULE := true
这样就可以编译出 framework/android.policy.jar 模块了。不过要注意如果要全部编译的话,要把 Android.mk 改回去。
如何在 Android.mk 中添加自定义库
在编译 android 模块的时候,有时候想自己添加一些自己的东西,或者是说链接一些额外的库(例如说自己写的)。这个时候需要去修改 Android.mk 文件。这里以 android 中简单的 toolbox 模块为例说明。例如说要在 toolbox 中加一个自己的命令,除了编写相应的 .c 文件文件外(例如 myhello.c),Android.mk 中要这么改:// myhello 是你自己加的命令 TOOLS := \ myhello \ ls \ mount \ cat \ ps \ kill \ ln \ insmod \ rmmod \ lsmod \ ... ... // 默认的是只有 libcutils 和 libc 的,后面的那个 libmyhello 假设就是你要链接的库(你自己写的那个) // 动态库是加到 LOCAL_SHARED_LIBRARIES 这个变量,静态库是加到 LOCAL_STATIC_LIBRARIES 这个变量 // 动态库还需要把你的库复制到 obj/lib 下(弄个连接也可以,运行的时候要把你的库弄到 system/lib 下 ) // 动态库和静态库是不一样的,具体的可以通过出错信息来看(mm showcommands) // 然后后面那个 LOCAL_LDFLAGS 可以用来设置一些额外链接信息 // 像这里我链接了 x11 的库,不过一般在 android 里是用不到这个库的 LOCAL_SHARED_LIBRARIES := libcutils libc libmyhello OLD_LDFLAGS := $(LOCAL_LDFLAGS) LOCAL_LDFLAGS = $(OLD_LDFLAGS) -L/usr/lib -lX11 ... ...