droid-native 项目教程
droid-nativeNext Generation Android x86 Desktop – Anbox, Lineage, WayDroid, BlissOS, Dock-Droid项目地址:https://gitcode.com/gh_mirrors/dr/droid-native
1. 项目的目录结构及介绍
droid-native/
├── README.md
├── src/
│ ├── main/
│ │ ├── cpp/
│ │ │ ├── native-lib.cpp
│ │ │ └── CMakeLists.txt
│ │ └── java/
│ │ └── com/
│ │ └── example/
│ │ └── myapplication/
│ │ └── MainActivity.java
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── myapplication/
│ └── ExampleUnitTest.java
├── app/
│ ├── build.gradle
│ └── src/
│ └── main/
│ ├── AndroidManifest.xml
│ └── res/
│ ├── layout/
│ │ └── activity_main.xml
│ └── values/
│ └── strings.xml
├── build.gradle
├── settings.gradle
└── gradle.properties
目录结构介绍
README.md: 项目说明文件。src/main/cpp/: 包含C/C++源文件和CMake构建脚本。
native-lib.cpp: 主要的本地库文件。CMakeLists.txt: CMake构建脚本。 src/main/java/: 包含Java源文件。
MainActivity.java: 主活动文件。 src/test/java/: 包含单元测试文件。
ExampleUnitTest.java: 示例单元测试文件。 app/: 应用模块目录。
build.gradle: 应用模块的Gradle构建脚本。src/main/AndroidManifest.xml: 应用的清单文件。src/main/res/: 应用的资源文件。
layout/activity_main.xml: 主活动的布局文件。values/strings.xml: 字符串资源文件。 build.gradle: 项目的Gradle构建脚本。settings.gradle: 项目的设置文件。gradle.properties: Gradle属性文件。
2. 项目的启动文件介绍
MainActivity.java
package com.example.myapplication;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
// Used to load the 'native-lib' library on application startup.
static {
System.loadLibrary("native-lib");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Example of a call to a native method
TextView tv = findViewById(R.id.sample_text);
tv.setText(stringFromJNI());
}
/**
* A native method that is implemented by the 'native-lib' native library,
* which is packaged with this application.
*/
public native String stringFromJNI();
}
native-lib.cpp
#include <jni.h>
#include <string>
extern "C" JNIEXPORT jstring JNICALL
Java_com_example_myapplication_MainActivity_stringFromJNI(
JNIEnv* env,
jobject /* this */) {
std::string hello = "Hello from C++";
return env->NewStringUTF(hello.c_str());
}
3. 项目的配置文件介绍
build.gradle (项目级)
// 项目级 build.gradle 文件
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:4.2.1"
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
build.gradle (应用模块级)
// 应用模块级 build.gradle 文件
plugins {
id 'com.android.application'
droid-nativeNext Generation Android x86 Desktop – Anbox, Lineage, WayDroid, BlissOS, Dock-Droid项目地址:https://gitcode.com/gh_mirrors/dr/droid-native