Android(安卓)NDK JNI 入门笔记-day01-创建项目并运行
16lz
2021-12-04
Android NDK JNI 入门笔记目录
创建项目
1. 选择一个项目模板
Native C++
2. 配置我们的项目
Name
Package name
Save location
Language
Minimum SDK
3. Customize C++ Support
C++ Standard
4. 查看第一个 NDK-JNI 项目
build.gradle
apply plugin: 'com.android.application'android { compileSdkVersion 29 buildToolsVersion "29.0.3" defaultConfig { applicationId "com.ihubin.ndkjni" ...... } buildTypes { ...... } externalNativeBuild { cmake { path "src/main/cpp/CMakeLists.txt" version "3.10.2" } }}dependencies { ......}
CMakeLists.txt
cmake_minimum_required(VERSION 3.4.1)add_library( native-lib SHARED native-lib.cpp )find_library( log-lib log )target_link_libraries( native-lib ${log-lib} )
native-lib.cpp
#include #include extern "C" JNIEXPORT jstring JNICALLJava_com_ihubin_ndkjni_MainActivity_stringFromJNI( JNIEnv* env, jobject /* this */) { std::string hello = "Hello from C++"; return env->NewStringUTF(hello.c_str());}
MainActivity.java
package com.ihubin.ndkjni;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.widget.TextView;public class MainActivity extends AppCompatActivity { static { System.loadLibrary("native-lib"); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView tv = findViewById(R.id.sample_text); tv.setText(stringFromJNI()); } public native String stringFromJNI();}
运行项目
修改 C++ 代码,重新运行
#include #include extern "C" JNIEXPORT jstring JNICALLJava_com_ihubin_ndkjni_MainActivity_stringFromJNI( JNIEnv* env, jobject /* this */) {// std::string hello = "Hello from C++"; std::string hello = "NDK-JNI-day01"; return env->NewStringUTF(hello.c_str());}
可以看到,我们修改的 C++ 代码已经生效了。
查看 APK
至此,我们已经学会了在 Android 项目中使用 C++ 代码。
代码:
NDKJNIday01
参考资料:
Android Developers NDK 指南
更多相关文章
- android ViewPager 竖向滑动
- android studio上HierarchyViewer的使用实例
- Android数据库编程教程
- 一些关于Activity的技巧
- Android(安卓)性能测试
- android studio真机调试offline的问题
- Android(安卓)Timer 更好方法
- Android(安卓)video streaming and encoder
- Android核心基础(十一)