※ 引述《cdfq152313 (月月冬瓜)》之銘言:
: 公司最近接了一個Android案子,說好對方會提供SDK。
: 對方第一版SDK過來是純C/C++ library,連makefile都沒有QQ
: 要求後第二版丟過來,加上了CMakeList.txt。
: 總算可以試圖編譯,但還是過不了。
: 詢問後才發現他們的toolchain是自己編的不是從Android官網抓的 Orz
: 我想想這樣花太多時間了,所以詢問對方能不能直接提供編譯完的版本。
: 於是對方最後丟了一個.so過來,看來是要我們自己封JNI...
: 先撇開之前自己編譯的問題,我只想確定一下,身為Android工程師會封JNI是常識嗎?
: 我大部分使用別人library的經驗都是在gradle裡面設定dependency
: 少部分是抓下來後import module。
: 這還是第一次碰到需要自己封JNI的情況。
: 因為公司也只有我一個Android工程師,
: 所以想詢問一下有Android工作經驗的人這個問題。
: 請問你們有自己封裝過JNI嗎? 這會是Android工程師的必備技術嗎?
之前有聽朋友聊過在系統廠的一些大小事,如果有說錯請給予指正
JNI, Jave native interface, 一般寫Java的人應該很少會碰到這層,
除非是有要添加硬體特徵,或是底層有一個C或C++ Library想要提供給上層Java使用,
回到原po問到的,會JNI算是常識嗎 ? 那就要看你怎麼定義Android工程師了,
如果是IC廠的Android BSP工程師說不會,大概可以包一包回家。
但如果是系統廠的Android BSP工程師說不會,其實蠻正常的,
因為通常拿到一包code都是有Android每層的原始碼,linux driver, JNI, framework, android app
然後接下來的工作就是改linux driver甚至改device tree就會動了,
會需要改到JNI通常都是Android版本有落差,這個一樣會丟回去給IC廠處理。