droid-native 项目教程

随笔3个月前发布 泥巴是昵称
34 0 0

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

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...