※ 引述《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厂处理。
作者:
angusyu (〒△〒)
2017-08-18 21:35:00这不是app工程师。我反而很奇怪一堆人说jni简单是怎样
作者: profiles (pforileS) 2017-08-18 22:18:00
JNI很古老噢,记得我用Jdk1.2时就有了,其实蛮容易,前题你要会用C
作者:
angusyu (〒△〒)
2017-08-19 00:30:00真的 要能发废文 写最新的app 还要会C跟JNI 还真是简单
IC厂的也不一定会JNI哦,改framework不需要直接会JNIAndroid.mk包好好 Service用AIDL建的也不用写JNI
作者: pttuser (pttuser) 2017-08-19 15:42:00
最好系统厂bsp team不会jni,那我看到的是什么?以前在系统厂从改driver到app层收event一条龙都要会更何况是jni,常常在jni作一些custom behavior给app接
作者:
oneheat (等待)
2017-08-19 16:33:00看module ,越来越多走service后,jni 就渐渐退出,反而是aidl比较流行
作者:
xam (听说)
2017-08-19 23:08:00bsp team作个两年应该都要知道jni,也要学的起来,要很熟倒未必
作者: aleelyle (lyle) 2017-08-20 07:36:00
用ndk是android security重要的一环 不重要? 或许吧
影音codec, pdf, 影像辨识大多都是c lib,不一定是控制硬件才需要jni
作者:
Ferrara (红烧冰淇淋)
2017-08-20 19:18:00网络协议很多都用c写 通讯相关的app都需要
作者:
netburst (133 134 592)
2017-08-21 11:25:00看C强不强囉
作者: chiwa (我是青蛙,不是王子^_^) 2017-08-21 21:47:00
JNI满基本的吧,看一下现有的code依样画葫芦总会写吧
作者:
krizarlid (Let's Go Cubs !)
2017-08-21 21:48:00唬烂 JNI根本基本 不会就是包一包回家 管你在哪
你说的是BSP工程师? App工程师我看过的大部份都不会.