公司最近接了一個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工程師的必備技術嗎?
作者:
senjor (哞哞)
2017-08-18 11:28:00我覺得哪有什麼必備技術,就是看現在工作需不需要而已...不過身為資訊人的天命就是,要有隨時學習新技術的準備 Q_Q資訊人的基本功反而是學習新技術的能力,其他其次 (躺
作者:
senjor (哞哞)
2017-08-18 11:39:00其實我覺得就是看工作需求耶,有時候某個環境下,連續幾年都碰不到一個很多人都有碰過的技術也是很正常的例如我是做後端,但是卻一直處理資料庫跟報告的部分,使用者登入、帳號驗證、安全性那塊都沒機會碰過... Q_Q
作者:
mrj5566 (J56先生)
2017-08-18 11:43:00請他們先提供一個 Demo Project先確認 SDK 是可以正常運行的, 再來討論後續問題
作者:
ckvir (ckvir)
2017-08-18 12:07:00JNI 花個1.2天研究一下 跑一下demo 就知道原理了
除非是職缺上常見的技術,其他的只有有沒有用到的問題,遇到了再研究就好。
作者:
senjor (哞哞)
2017-08-18 12:15:00之前面試Android工程師,面試說我沒有編過kernel的經驗,所以只能算是新人 Orz
作者:
oneheat (等待)
2017-08-18 12:16:00JNI而已,又不是叫你整aidl,網上一堆範例
沒有說你一定要懂很多 但免不了學習就是jni應該算還好的程度
不是必備這些技術有點像是選修,沒用到通常也不會特別去學
作者:
Eric0605 (我還有點餓)
2017-08-18 12:59:00不會很常見 大公司分工很細 可能連mk都自己沒寫過 只改其他人的
作者: RadiationXen (Xen) 2017-08-18 13:03:00
JNI 還好
作者:
Argos (Big doge is watching u)
2017-08-18 13:14:00反正齁 你不會的 就先嘴你一輪「阿這不是基本中的基本」然後要幹麻?當然是凹你阿!什麼常識啦 基本啦 都是放屁
作者:
htury (冰點)
2017-08-18 13:27:00jni是不難,只怕還要幫對方debug時間比較重要,可以問主管意見,通常都會請對方提供sample
作者:
meowyih (meowyih)
2017-08-18 13:39:00沒啥常識不常識的, 不過這種東西摸個幾天就能熟了才是真的常識 = =a還有一個常識, 出錢的最大, 不怕賠錢的第二大, 不爽幹就丟辭呈的第三大 XD
作者:
angusyu (〒△〒)
2017-08-18 14:37:00對方的問題,除非他們有特別說連c都要自己用ndk包
作者:
ssccg (23)
2017-08-18 14:39:00沒有什麼必備不必備的,是你們沒說好的問題,要Java API就講清楚不要只說SDK
作者:
angusyu (〒△〒)
2017-08-18 14:39:00包準那個so還是不能用,因為沒wrapper誰知道怎麼用
我以為第三方sdk都會有完整的guide,不然製作的人怎麼測的?
封是會封,但你們這狀況應該是看怎麼跟SDK提供者談的.
作者:
netburst (133 134 592)
2017-08-18 15:43:00我那包就是c已經沒人維護了 但上面又要求最佳化c已經八年沒人動了 也沒文件 我也不會c JNI找到的多半是流程教學文 悲泣so還缺 還要去production COPY回來
作者: m09456010 (^^) 2017-08-18 16:35:00
確實該跟人拿個demo 不然亂丟東西就交差 你也不知道最差最差也有文件
作者:
y3k (激流を制するは静水)
2017-08-18 16:58:00矬控o看工作需求 有些人是專精在Application上 JNI就是用來載API用的... 而且簡單跟難搞的程度差非常多 通常有用的都有點難度
作者: pttuser (pttuser) 2017-08-19 15:50:00
一堆推文自己不會就說不用會,可笑
作者:
siriusu (かがみは俺の嫁。)
2017-08-19 19:11:00不是基本更正 不是必備 你要說很基本也沒錯但不是每個人都有必要碰
作者:
aksk (菸酒生)
2017-08-20 06:07:00既然是SDK,本來就要封裝好而且測試可用吧!
so檔不是用Android toolchain編譯也沒辦法使用,自己改toolchain編譯會花很多時間先確定so檔可用,例如unit test先試看看jni init能夠跑和某些fun 輸入輸出
作者:
jackyu (孫權)
2017-08-20 16:22:00這就是分(ㄊㄨㄟ)配(ㄒㄧㄝ\)的技術啦,對方一定是系統或IC廠RD,頂多幫你出JNI相容的so,要他們寫一個簡單的app一個簡單的class去demo他們的API要怎麼用,他們應該也不會也不想學,說不定光survey ndk怎麼用就覺得很煩了不過就算你要寫JNI,他們也要提供H檔和API用法吧
作者: psliurt (反指標) 2017-08-20 21:52:00
我不知道Android工程師要不要懂,但JAVA工程師一定要懂!
作者: jackcorner 2017-08-28 14:53:00
很多時候不是技術問題 是資源問題 如果只有你一個人我是賴死賴皮拼命跟他要東西 另一邊拼命壓交期 再跟老闆抱怨多困難各種不可能各種卡關沒有什麼都會的工程師 就算需要的我都會我也是這樣