在 Android 中,你可以使用 pthread 库来实现多线程编程
-
首先,确保你的项目已经安装了 NDK。在 Android Studio 中,转到 “Tools” > “SDK Manager” > “SDK Tools”,然后勾选 “NDK (Side by side)”。点击 “Apply” 安装 NDK。
-
在你的项目中创建一个新的 C/C++ 源文件。例如,创建一个名为
native-lib.c
的文件。 -
在
native-lib.c
文件中,包含 pthread 头文件并定义一个线程函数。例如:
#include#include #include void* thread_function(void *arg) { int i; for (i = 0; i < 5; i++) { printf("Thread: %d\n", i); sleep(1); } return NULL; }
- 在同一个文件中,添加一个函数来创建和运行线程:
void create_thread() { pthread_t thread; pthread_create(&thread, NULL, thread_function, NULL); pthread_join(thread, NULL); }
- 在你的 Java 代码中,调用
create_thread()
函数。首先,在build.gradle
文件中的android
部分添加以下内容:
externalNativeBuild { cmake { cppFlags "-std=c++11" } }
- 在你的 Java 类中,声明一个 native 方法:
public class MainActivity extends AppCompatActivity { // ... public native void createThread(); }
- 在
native-lib.c
文件中,实现 JNI 函数来调用create_thread()
函数:
#includeJNIEXPORT void JNICALL Java_com_example_myapplication_MainActivity_createThread(JNIEnv *env, jobject obj) { create_thread(); }
- 在你的 Java 代码中,加载库并调用 native 方法:
public class MainActivity extends AppCompatActivity { // ... static { System.loadLibrary("native-lib"); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); createThread(); } }
现在,当你运行应用程序时,它将创建一个新的线程并在其中执行 thread_function
。这只是一个简单的示例,你可以根据需要修改代码以适应你的项目。