將 C++ 程式移植到 Android 平臺
將 C++ 程式移植到 Android 平臺需要多個步驟,涉及 Android NDK(Native Development Kit)和 Android Studio。下面是詳細的步驟指導: 1. 環境準備 安裝 Android Studio:確保你的開發環境中安裝了 Android Studio,這是開發 Android 應用的主流 IDE。 下載 Android NDK:在 Android Studio 中,前往 SDK Manager,選擇 “SDK Tools” 標籤,勾選 “NDK (Side by side)” 並安裝。 2. 建立一個新的 Android 專案 在 Android Studio 中,選擇 File > New > New Project。 選擇一個模板,例如 Empty Activity。 設定專案名稱、包名和其他資訊。 完成專案建立。 3. 配置 CMake Android Studio 支援使用 CMake 構建 C++ 程式碼。你可以透過以下步驟配置: 在專案中的根目錄下建立一個 CMakeLists.txt 檔案。這是 CMake 的配置檔案。 cmake_minimum_required(VERSION 3.4.1) # 新增你的 C++ 原始檔 add_library(my_native_lib SHARED src/main/cpp/my_native_code.cpp) # 找到需要連結的庫 find_library(log-lib log) target_link_libraries(my_native_lib ${log-lib}) 如果你有多個原始檔,可以在 add_library 中列舉它們,或使用萬用字元。 4. 建立 JNI 介面 在你的 C++ 程式碼中使用 JNI(Java Native Interface)來將 C++ 函式暴露給 Java 層。 // my_native_code.cpp #include <jni.h> #include <string> extern "C" JNIEXPORT jstring JNICALL Java_com_example_myapp_MainActivity_stringFromJNI(JNIEnv *env, jobject /* this */) { return env->NewStringUTF("Hello from C++"); } 5. 修改 Java 程式碼以呼叫 C++ 函式 在你的 Android 專案的 MainActivity.java 檔案中,載入 C++ 庫並呼叫 native 方法: package com.example.myapp; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends AppCompatActivity { static { System.loadLibrary("my_native_lib"); } public native String stringFromJNI(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textView = findViewById(R.id.sample_text); textView.setText(stringFromJNI()); } } 6. 配置 build.gradle 檔案 確保你的 app/build.gradle 檔案中啟用了 CMake: android { ... externalNativeBuild { cmake { path "CMakeLists.txt" } } ... } dependencies { implementation 'androidx.appcompat:appcompat:1.0.2' // 其他依賴項 } 7. 編譯和執行 點選 Android Studio 中的 Run 按鈕編譯並執行你的應用。 若一切配置正確,你應該能看到 C++ 中的字串在 UI 上顯示。 8. 除錯和最佳化 使用 Android Studio 提供的除錯工具進行除錯。 監測應用的效能和資源使用,以確保在 Android 裝置上有效執行。 注意事項 根據你的 C++ 程式的複雜性,可能需要額外處理依賴項。 配置不同的 API 和裝置可能需要特別的注意。 透過這些步驟,你應該能將 C++ 程式移植到 Android 上並順利執行。如有進一步的問題,可以具體詢問。