Android系統源碼external添加新模塊

Android系統源碼external添加新模塊

        在linux系統安裝配置好C語言等編譯工具後,可以輕鬆地寫個C語言小程序驗證某種功能,那如何在Android系統中編譯C語言或者靜態庫呢?不嚴格地說,Android系統也可以看作是linux系統,那應該也能和linux系統一樣,可以簡單地編譯C語言。事實上,是可以的。那如何Android系統源碼external添加新模塊、在android系統中運行呢?接下來以一個小例子說明。

一、寫一個HelloWorld

    -- test
       |-- Android.mk
       `-- helloworld.c

    1. 在Android源碼external路徑下創建一個文件夾,例如test,

        cd external

        mkdir test

   2. 寫個HelloWord

#include<stdio.h>                                                                                                                                |   " Press <F1> to display hel
                                                                                                                                                 |   
int main(void)                                                                                                                                   |-  helloworld.c (/home/rick/am
{                                                                                                                                                ||-   function
    printf("Hello world...\n");                                                                                                                  |||     main
    return 0;                                                                                                                                    |   
                                                                                                                                                 |   ~                          
}     

    3.編寫Android.mk

LOCAL_PATH:= $(call my-dir)                                                                                                                      |   " Press <F1> to display hel
include $(CLEAR_VARS)                                                                                                                            |   
LOCAL_MODULE_TAGS := optional                                                                                                                    |-  Android.mk (/home/rick/amlo
LOCAL_MODULE := test                                                                                                                             ||-   macro
LOCAL_SRC_FILES := $(call all-subdir-c-files)                                                                                                    |||     LOCAL_PATH
include $(BUILD_EXECUTABLE)  

 

二、編譯

    1.配置編譯環境

        在Android源碼根路徑執行source build/envsetup.sh,然後執行lunch,根據實際硬件選擇編譯選項,再到external/test下執行mm

source build/envsetup.sh
lunch
7
cd external/test
mm

        編譯成功的前提是源碼整包編譯過,部分編譯mm的時間不會太長,編譯結果所在路徑會在打印中提示,即out/target/product/xxx/system/bin/test

 

三、驗證

      adb push 方式或者串口方式將可執行文件下載到目標板子,執行./test

console:/ # cd vendor/                                                         
console:/vendor # ./test                                                       
Hello world...

 

 

四、修改Android.mk,編譯a文件或so文件

     具體步驟參考下面第二個鏈接,生成路徑如下:

     out/target/product/xxx/obj/STATIC_LIBRARIES/hello_intermediates/hello.a

     out/target/product/xxx/obj/lib/hello.so

 

參考鏈接:

Android系統源碼external添加新模塊

如何編譯android模塊

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章