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开源项目贡献
- 三行代码去Android(安卓)USB ADB调试确认对话框
- Android(安卓)Studio 导入Eclipse建立的android项目问题
- Android(安卓)GreenDao3.2配置及使用详解
- MQTT的学习研究(十五) MQTT 和android整合文章
- Android(安卓)The SourceSet 'instrumentTest' is not recognize
- Android学习笔记(九)
- android 升级包检测并更新实现
- Android(安卓)比Timer更好方法