robot
最新文章(10)
Mqskit 和其它相關工具
CPython 的 GC 二、三事
寫 Mecurial Extension 是件快樂的事!
Mozilla 台灣辨公室徵人啟事
關於 Apple 的兩項專利
core dump 之前的 frame
怎麼發出 beep 聲?
先承認你要找的是奴才吧!
程式碼要清的多乾淨?
FreeBSD 的 Thread-Local Storage 實作
首頁
新編
最新留言
Entries RSS
重要關鍵字(10)
coding (122)
Python (93)
FreeBSD (71)
WEB (61)
URL (48)
hardware (46)
javascript (36)
Linux (34)
blog (30)
C++ (16)
所有關鍵字
新增 URL
Android Native code 不用 NDK
by thinker
2 Columns
關鍵字:
Android
自從 Google 發佈 $Android$ NDK,為更高計算效能的要求,灑下第一道曙光。依一般的作法,我們只需 download NDK,安裝之後,使用 NDK 的 build system 一切就沒問題了。但是,小弟在 $FreeBSD$ 上工作,不想另外準備 toolchain ,也不想使用 NDK 的 build system 。於是,花了些時間$研究$,如何在不使用 NDK 的情況下,直接把編好的 shared object 放到 apk 裡。 apk 對 Native code 有幾個要求。 * 檔名必需為 libxxx.so * 檔案會被壓縮到 lib/xxxx/ 目錄下 * xxxx 是 architecture 名稱,如 armeabi * 安裝時, device 會依據 architecture 到對映目錄下,使用對映的檔案 * Native code 使 JNI 的方式使用 * Function name 為 Java_to_branda_foo_boo() * 以 Java 開頭,to_branda_foo_boo 對應到 class to.branda.foo 的 method boo * class 或 method name 裡有 "_" 符號,轉成 "_1" * inner class name 前面加上 "_00024" * to.branda.foo 裡的 inner class bar 裡的 method take_me 對映到 function * Java_to_branda_foo_00024bar_take_1me() 如果你是用 $Android$ SDK 編你的 Java code, 請將 native code 放在 * libs/xxxx/ 目錄下,"xxxx" 是 architecture 名稱; 如 armeabi。 ant 在包裝 Java App 時,會自動將 "libs" 目錄下的東西,壓到 apk 的 lib/ 目錄下。(ant 是 $Android$ SDK 所使用的 build system,如果您是使用 Eclipse 環境, Eclipse 將自行呼叫 ant) 以上方式,是針對你已經有 toolchain ,可能也已裝了 $Android$ source tree ,編好完整的 $Android$ 。這時,你可能不想再裝 NDK 。另外,你可能拿到別人編好的 binary ,想直接放進來使用。以上情況,你都可以將檔案放到適當的位置,由 ant 或 aapt 幫忙包裝到你的 apk 裡。
最後更新時間: 2009-11-18 16:52:36 CST |
引用
查詢:
COMMENTS: