2011年3月19日 星期六

[ Android ] Library 開發流程 (1)

若想在 Android 上開發或新增一套 Library,要怎麼做呢?
這套 Library 可能涵蓋 C/C++、JNI、Java 這幾個部份,可能是上層 Applications 必須使用到這個功能,或是 Framework 必須整合這個功能,甚至會跟硬體有關。

現在假設,我們寫了一套 C/C++ Library,用途先不管。
在 Android 上,如果要讓上層 Java Applications 可以用到這個 library 所提供的功能,我們必須實作 JNI 跟 Java Library 這兩層,然後以 Shared Library 的形式供複數隻 Java Applications 所使用。

先大概的描述一下作法:
1. 將 C/C++ Library 編成 Shared Library,也就是 .so 檔,放到 /system/lib/ 底下。
2. 將 JNI 也編成 Shared Library,同樣放到 /system/lib/。這邊的 JNI 也有可能是跟 C/C++ Library 編成同一個 .so。
3. 將 Java Library 編譯成一個 .class 格式的 .jar 檔,供 Java Applications 開發時使用。
4. 將 Java Library 編譯成一個 .dex 格式的 .jar 檔,放到 /system/framework/ 底下。把這個 .jar 檔的路徑加入 CLASSPATH 環境變數,並加入 preloaded-classes 或在 /system/etc/permissions/ 下新增 your_library.xml 並設定其內容 。

這樣就完成了!
這樣你的 Java Applications 就能正確的使用到 C/C++ Library。

沒有留言:

張貼留言