Android StudioでCMakeを使うのはどんな体験ですか
2580 ワード
前回はAndroid StudioでのNDK利用がどのような体験なのかを記述しましたが、過程が煩雑で、多くの命令を覚える必要があるのが頭の痛いところです.前回SDKツールを更新したとき、リストの下にCMakeのオプションがあることに気づいた.名前から明らかにCに関連しているはずだと感じたが、C関数を書く方法があるのではないかと思った.そこでダウンロードして、ネット上で1回の乱れた息の后で、たぶん少し皮の毛を知っていて、その使い方の简単さを深く感じて、决してNDKの通常の使い方の比较することができるのではありませんて、大喜びして、覚えています.20170109
例demo転送ゲート------go------HelloCMake
1、構成
a)CMakeをダウンロードし、Android Studioでダウンロードすることが望ましい
File->Settings->Appearance&Behavior->System Settings->Android SDK->SDK Tools CMakeチェック
b)moduleの下にcppフォルダを新規作成し、.cppファイルを保存する.c)build.gradleを構成し、加入する
d)cppファイルを作成main/java同級のcppフォルダの下でcppファイルを新規作成し、so-demo.cpp
e)CMakeLists.txtファイルの作成例は以下の通り
2、cppを書く
a)クラスの新規作成、cppメソッドの宣言、public native...キーワードnative
b)cppを作成し、Android Studioをマウスでnative関数に移動し、Alt+Enterはスマートプロンプトを使用して関数を迅速に生成することができ、以下のようにextern"C"{}内に方法を置き、Cの形式でコードを作成する
3、構築運行
まず生成したsoライブラリを参照し,適切にロードする必要がある.apkを構築する方法に従って構築を行い,直接run,Gradleなどを用いることもできる.
構築が完了し、build/intermediates/cmakeで対応するsoライブラリを取得し、他のエンジニアリングにコピーして使用できます.
4、終わり
CMakeを使用すると、Cの作成が大幅に難しくなり、構成が簡単になり、.hヘッダファイルをたくさん書かなくてもいいので、より優れた選択になります.ソースコードOSGitアドレス:Android NDK-HelloCMake
例demo転送ゲート------go------HelloCMake
1、構成
a)CMakeをダウンロードし、Android Studioでダウンロードすることが望ましい
File->Settings->Appearance&Behavior->System Settings->Android SDK->SDK Tools CMakeチェック
b)moduleの下にcppフォルダを新規作成し、.cppファイルを保存する.c)build.gradleを構成し、加入する
defaultConfig{
externalNativeBuild {
cmake {
cppFlags ""
}
}
}
android{
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
}
d)cppファイルを作成main/java同級のcppフォルダの下でcppファイルを新規作成し、so-demo.cpp
e)CMakeLists.txtファイルの作成例は以下の通り
#CMake
cmake_minimum_required(VERSION 3.4.1)
# cpp
add_library( so-demo SHARED src/main/cpp/so-demo.cpp )
#log
find_library( log-lib log )
# so
target_link_libraries( so-demo ${log-lib} )
2、cppを書く
a)クラスの新規作成、cppメソッドの宣言、public native...キーワードnative
package amos.com.hellocmake.soutil;
/**
* @author kuan.liang
*/
public class SoUtils {
private static SoUtils instance = null;
public static SoUtils getInstance(){
if(null == instance){
synchronized (SoUtils.class){
if(null == instance){
instance = new SoUtils();
}
}
}
return instance;
}
//
public native String getStringFromJni();
}
b)cppを作成し、Android Studioをマウスでnative関数に移動し、Alt+Enterはスマートプロンプトを使用して関数を迅速に生成することができ、以下のようにextern"C"{}内に方法を置き、Cの形式でコードを作成する
#include
#include
extern "C"{
JNIEXPORT jstring JNICALL
Java_amos_com_hellocmake_soutil_SoUtils_getStringFromJni(JNIEnv *env, jobject) {
std::string hello = "Say hello from JNI";
return env->NewStringUTF(hello.c_str());
}
}
3、構築運行
まず生成したsoライブラリを参照し,適切にロードする必要がある.apkを構築する方法に従って構築を行い,直接run,Gradleなどを用いることもできる.
//
System.loadLibrary("so-demo");
構築が完了し、build/intermediates/cmakeで対応するsoライブラリを取得し、他のエンジニアリングにコピーして使用できます.
4、終わり
CMakeを使用すると、Cの作成が大幅に難しくなり、構成が簡単になり、.hヘッダファイルをたくさん書かなくてもいいので、より優れた選択になります.ソースコードOSGitアドレス:Android NDK-HelloCMake