作为一名专业移动产品经理,你最好会一门移动端语言,这对你的技术可行性分析,ui、ue设计等等与技术协调相关的工作有很大的帮助。
很多人都想学习sdk的开发,大概都是应用层开发人员想要更近一步,增加自身的竞争力。sdk有两种形式存在,一种是jar包,一种是so文件,ndk生成的是以.so结尾的文件。
那么到底
NDK是什么?
Native Development Kit 全称 原生(本地)开发工具包,“工具包” 的意思表明NDK是一系列工具的集合,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。
NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。在这里不讲解具体的操作过程,可以百度搜索一下相关开发人员的博客,我对自己的要求就是了解开发需要什么,具体的步骤,结果是什么就行。
NDK最大作用是什么?
1. 避免多平台重复编写代码,让客户端开发更加简单,运营更稳定,功能更强大。
2. 将生态打包,建立一定的门槛
3. 安全性考虑,增加反编译拆包难度
NDK的实现原理是什么?
通过Jni协议来沟通Java代码和外部的本地C/C++代码, Java代码可以调用外部的本地代码, 外部的C/C++ 代码可以调用Java代码;
步骤:
a.创建Android工程
b.用java声明native方法
c.创建C文件
d.编写Android.mk文件
e.NDK编译生成动态库
ndk-build 命令把名为hello的c语言文件生成so文件的sdk
d.Java中加载动态库
static{
System.loadLibrary("hello");
}
如果想要再精进学习,需有c或c++基础,利用ndk工具将功能框架搭好,做出稳定、安全、易懂的sdk提供给开发者。
招聘方面:懂得ndk开发的工程师一般在15K到20K不等为合理,有钱人招聘上不封顶,能够独立制作底层硬件sdk封装+app独立开发那是很不错的人才。
对ndk的了解还能够让我们对一些商务问题找到解决方案!
网友评论