@XiangZhou
2015-08-04T17:48:58.000000Z
字数 897
阅读 2146
android
遵循android系统的原则,我们添加一个hello程序,来说明怎么添加一个可执行问价到android系统中。
我们在frameworks/bask下新建一个hello文件夹,在里面新建一个main.cpp和Android.mk文件。
main.cpp文件
#include "utils/RefBase.h"
#include <stdio.h>
class A : public android::RefBase
{
public:
A():RefBase()
{
}
~A()
{
printf("~A\n");
}
void speek(const char* name)
{
printf("Hello %s\n", name);
}
};
int main() {
A *a = new A();
{
android::sp<A> spa(a);
spa->speek("zhouxiang");
android::wp<A> wpa(a);
}
return 0;
}
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello
LOCAL_SRC_FILES := main.cpp
LOCAL_C_INCLUDES := system/core/include
LOCAL_SHARED_LIBRARIES += libutils
include $(BUILD_EXECUTABLE)
我们在其中使用了RefBase这个引用计数的类,和强弱指针,RefBase.h在system/core/include文件夹下,那么我们的LOCAL_C_INCLUDES就需要包含这个路径,其实现被编译成一个叫libutils的动态库,那么我们就需要添加上这个动态库。我们要编译一个可执行的文件,那么include $(BUILD_EXECUTABLE)
,名字叫做hello,那么LOCAL_MODULE := hello
。
我们在android的根目录下使用命令mmm frameworks/base/hello/
编译这个可执行文件。
我们将其推到我们的手机上,看下运行效果。