備忘録

備忘録

AndroidStudioを利用してAndroidで実行可能な実行ファイルをC++で作成する方法

Ⅰ. はじめに

タイトルの通り「AndroidStudioを利用してAndroidで実行可能な実行ファイルをC++で作成する方法」です。

Ⅱ. やり方

1. 新規Native C++プロジェクトを作成する

f:id:kagasu:20210404175719p:plain

2. CMakeLists.txtを編集する

$(project_root)/app/src/main/cpp/CMakeLists.txt

cmake_minimum_required(VERSION 3.10.2)
project("helloworld")

add_executable(helloworld native-lib.cpp)
find_library(log-lib log)
target_link_libraries(helloworld ${log-lib})
3. サンプルプログラムを書く

$(project_root)/app/src/main/cpp/native-lib.cpp

#include <iostream>

int main()
{
  std::cout << "Hello world!" << std::endl;
  return 0;
}
4. ビルドする
5. 実行ファイルをAndroidにコピーする
adb push ^
  $(project_root)\app\.cxx\cmake\debug\arm64-v8a\helloworld ^
  /sdcard/

実行結果

$ ./helloworld 
Hello world!

FAQ

Q1. armeabi-v7aとarm64-v8aだけビルドしたい

A1. build.gradle(Module)を以下の通り編集する

android {
  defaultConfig {
    ndk {
      abiFilters 'armeabi-v7a', 'arm64-v8a'
    }
  }
}