※ 引述《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厂处理。