Android(安卓)Studio NDK 入门demo
16lz
2021-01-25
针对刚入门NDK的同学简化一下入门程序的编写,哈哈
一、新建NdkTest项目。
二、直接在目录下新建native方法工具类,方便调用。
三、MainActivity中调用Native方法更新UI。
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); NdkUtils ndkUtils=new NdkUtils(); TextView textView=new TextView(this); textView.setText(ndkUtils.getStrinFromC()); setContentView(textView); }}
四、Rebuild Project,查看目录下是否生成了相应的class文件
五、利用AS中的命令窗口Terminal的javah命令生成native方法的头部文件 javah -jni 包名.类名,执行命令之后再当前目录下会生成.h的文件
六、在main中右键新建jni文件夹,把刚刚生成的.h的头部文件剪切到此目录下,新建名为ndkdemo(随便起)的c文件,把头部文件中的方法复制到该文件中,改写返回信息
#include/* * Class: com_cg_ndktest_NdkUtils * Method: getStrinFromC * Signature: ()Ljava/lang/String; */JNIEXPORT jstring JNICALL Java_com_cg_ndktest_NdkUtils_getStrinFromC (JNIEnv * env, jobject jject){ return (*env)->NewStringUTF(env,"hello ,My name is JNI Demo"); }
七、在module的build.gradle中配置ndk的相关信息,点击箭头右上角,整理编译,根据错误信息,在配置文件中加入错误信息
八、记得在MainActivity中导入so文件库,运行项目,成功编译,可以在项目编译目录下面找到so文件库
static{ System.loadLibrary("ndkdemo");}
九、得到了so文件,直接引用so文件就更简单了,只需要在main中新建名为jniLibs的文件夹,把相应的so文件都复制进去,只要包名和方法名都相同,在其他项目中就是这样么简单的引用so库。
附上demo链接
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
- New Android(安卓)Project In Eclipse with SDK 4.0
- Ant 打包 Android(安卓)应用
- Android基础学习【历史流程重走】 ---- Android入门基础(二)