在android系統中添加hello程序
標籤(空格分隔): 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/
編譯這個可執行文件。
我們將其推到我們的手機上,看下運行效果。