Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

38
Eclipse ADTと AndroidStudio両方で 動かせる開発環境構築 @kimukou2628

Transcript of Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

Page 1: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

@kimukou2628

Page 2: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

はじめにお断り書き• すみません。あまり濃い話はできません>< • どちらかというと初心者向けのお話かと思います • 現状 eclipse ADT形式のプロジェクトをgit管理してたりしていて差分を見るために構成を変えたくない方向けです

Page 3: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

今話の対象の方(1)• AndroidStudio(以降略 AS)はまた使い慣れない方で徐々に慣れていこうという方 • 操作に詰まったらeclipse ADT(以降略 ADT)に戻れるようにしたいとか

• (Androidなら減価償却?的に)Windowsで(いいんじゃね?という方針で)開発している方 • JJUG CCCで公演された方のお話のような環境

• http://www.slideshare.net/s_kozake/android-android-sierjava

• ASは自分の環境だと重いな~と感じる方(特にWin)

Page 4: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

今話の対象の方(2)• 編集IDEとしてはASでもいいけどデバックしづらいと感じる方

• logcat周りの除外フィルタが使えない • フィルタの重ねとかADTだとできたり

• 変数Inspectionが使えない等 (AS1.2RCでデバック時に引数値みたいなのが見えるようになったりとかだいぶ改善されましたが。。。)

• breakpointの位置が微妙にずれることが有る等

• submodule(library project)は参照はしてるけど編集しない方 • NDK使っててgradle NDK DSLで書けないAndroid.mkを書いてしまっている方 • それでいて属人化はNG(メンテ性、だれでも出来る?)ということで独自Task等を書くのが非推奨な環境の方

Page 5: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

今話の対象外かも?の方• 一部の固定フォルダ名(app等)を存在チェックするようなサードパーティ製gradle pluginを使っている方 • test用のplugin等(appフォルダ名等固定のものも有)

• 豊富なメモリ環境/CPU環境のMacで主に開発している方 • マシンスペック自体がいいので体感的に改善されたように感じないかもしれません

• 通信ネットワークが快適な環境前提で開発している方 • オフラインで開発することがない方

Page 6: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

前提知識編

Page 7: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

build.gradleって何ぞや?•antのgroovyラッパーAntBuilder + Mavenアクセス機能をDSL(振る舞い言語)で記述できるようにしたビルドスクリプト言語。 •昨今では ASで比較的一般人に近い人も触れる機会が増えた為注目株。 •twitterだとASのverが上がる度に動かなくなり阿鼻叫喚な呟きが、、

•昔からantでapkをbuildしていた方は、なぜlocal.propertiesがなぜ必要なのか辺りを実感できるかと思います •sdk.dir=XXX •ndk.dir=XXX 等の指定でgradleでも現在も使用中

•ADTでは必須のproject.properties は DSL側に記述が移動してますので不要物扱いです •その代わりに gradle.properties を追加する形が多いようです

Page 8: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

single projectとmulti projectの違い•settings.gradleの有無になります

•single projectの場合(settings.gradle無) •ADTのexport gradleを元にした構成で作ります •submoduleを再帰読込しない(出来ない)ためprojectの同期/ビルド等は速いです •submoduleを参照するには一手間工夫が入ります

•multi projectの場合(settings.gradle有) •ASで新規Projectを作った場合に作られる構成です •submoduleの導入は簡単ですが、moduleが増えれば増えるほど同期/ビルドが遅くなります(フォルダの再帰参照が遅い)

Page 9: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

実作業編

Page 10: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

■まずADT環境の構築から(構築済ならSkip)現在ADT bundle が配布されなくなっていますが 中途半端に古い環境からupdateサイト経由で 更新しようとすると eclipseが固まったり、壊れてしまう事があるようです。 現時点版の手順を書き出してみます。

1. eclipse JavaDeveloperをダウンロードします(最新版でOK) 2. http://developer.android.com/sdk/installing/installing-adt.html

より ADT-23.0.6.zip をダウンロードします 3. Help > Install New Software. で Add Repository-Archive でダウン

ロード済のADT-23.0.6.zipを参照します 4. installを実行します 5. 依存するモジュールをダウンロードし始めてしばらくかかります。

Page 11: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

■移行手順として提供されていたexport gradle機能を実行

•手順 •プロジェクト>右クリック>exportから Generate Gradle build file •ルートプロジェクトを選択

•長所 •現在のADTの構成に近い形でbuild.gradleが生成

•短所 •全然メンテされていないため、SDK内のテンプレートが古い •現在はAS Pluginの内部のテンプレートが使用されている

•下記のような構成があると途中で生成が失敗する (後は解釈に失敗すると途中生成中断する) •soが同梱されているプロジェクト •jniフォルダがあるプロジェクト

•workspace直下にroot projectを生成してしまうためADT上から workspace直下のbuild.gradleファイルを参照できない

Page 12: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

第2段階目の作業(1)•生成後の作業として、まずexport gradleのマルチプロジェクト構成で動く環境を作ります •workspace直下のbuild.gradleを最新Plugin参照に修正

•workspace直下のgradle-wrapper.propertiesを修正

buildscript { repositories { jcenter() } dependencies { //classpath 'com.android.tools.build:gradle:0.12.+' classpath 'com.android.tools.build:gradle:1.2.+' } }

#distributionUrl=https\://services.gradle.org/distributions/gradle-1.12-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip

Page 13: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

第2段階目の作業(2)•生成に失敗したlibrary-projectに他の生成に成功したlibrary-projectのbuild.gradleをコピー(ここではLobi-5.0 Project が失敗したとします) • Lobi-5.0 Projectのbuild.gradleを編集します

• workspace直下のsettings.gradleを修正

• main projectのbuild.gradleに記述を追加

sourceSets { main { java.srcDirs = ['src'] jniLibs.srcDirs=[‘libs'] //☆追加 }

include ‘:Lobi-5.0' //☆追加

dependencies { compile project(‘:Lobi-5.0') //☆追加 }

Page 14: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

•ターミナル/コマンドプロンプトで下記のコマンドを入力し 記述チェックを行います •sh gradlew tasks •sh をつけているのはgit管理をしている場合、実行権限がない為です •windowではsh記述はいりません

•sh gradlew assemble ̶offline でビルドを走らせます

• Lint/LICENSE.txt辺りでエラーになるはずなのでmain Projectのbuild.gradle 末尾に追記 •ManifiestMargerでminSDK等が 全部一致しないとビルドが通らないのでbuild.gradle/AndroidManifest.xml等を修正

•で問題なければ、第3段階に進みます

第2段階目の作業(3)

android { lintOptions { checkReleaseBuilds false abortOnError false } packagingOptions { exclude 'META-INF/DEPENDENCIES.txt' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/notice.txt' exclude 'META-INF/license.txt' exclude 'META-INF/dependencies.txt' exclude 'META-INF/LGPL2.1' } }

Page 15: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

•main project側でmulti projectが制御できると嬉しいので下記作業をします •workspace直下 => main projectに下記のファイルをコピーします •settings.gradle •gradlew/gradlew.bat/gradleフォルダ

•techbooster様のAndroid実践プログラミング P105 に記載のとおり android gradle plugin 1.1.Xベースでまた相対パス指定が可能になったので settings.gradleを下記のように記述を修正します •https://techbooster.booth.pm/items/75014

第3段階目の作業(1)

//include ‘:irof_history' //☆MainProjectをコメント include ':play-services-6.1.71' include ':ArcMenu' include ':QuickActionLib' include ':Lobi-5.0' project(':QuickActionLib').projectDir = new File(settingsDir,'../QuickActionLib') project(':ArcMenu').projectDir = new File(settingsDir,'../ArcMenu') project(':play-services-6.1.71').projectDir = new File(settingsDir,'../play-services-6.1.71') project(':Lobi-5.0').projectDir = new File(settingsDir,'../Lobi-5.0')

Page 16: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

•この段階で mavenやsdkのlocal repository経由のライブラリをdependenciesで直参照するように修正することが出来ます。(build.gradle/settings.gradle両方修正必要) ただしaarから参照する場合はAndroidManifest.xmlは 編集できませんのでその点は注意が必要です

第3段階目の作業(2)

//include ':play-services-6.1.71' include ':ArcMenu' include ':QuickActionLib' include ':Lobi-5.0' project(':QuickActionLib').projectDir = new File(settingsDir,'../QuickActionLib') project(':ArcMenu').projectDir = new File(settingsDir,'../ArcMenu') //project(‘:play-services-6.1.71’).projectDir = new File(settingsDir,'../play-services-6.1.71') project(':Lobi-5.0').projectDir = new File(settingsDir,'../Lobi-5.0')

repositories { mavenLocal() mavenCentral() } dependencies { //compile project(':play-services-6.1.71') compile 'com.google.android.gms:play-services:6.1.71' }

Page 17: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

第3段階目の作業(3)•main projectのbuild.gradleのままだとgrade android pluginにアクセスできませんので(apply from: ../build.gradle の記述は動きません)workspace直下のbuild.gradleから下記の記述を移植します(最上部挿入) •第2段階目の作業(3) のコンソール作業をまた行って正常に動くか確認します •この段階でworkspace直下のgradlew/gradle.bat/gradle/settings.gradle/build.gradle等のファイルは削除しても問題ありません

buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.2.+' } }

Page 18: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

第3段階目の作業(4)•libsによるjar参照は build.gradleではあまり推奨されていませんので、記述を修正したいものを修正します。下記のサイト等で記述例検索ができます • http://gradleplease.appspot.com/ • http://mvnrepository.com/

buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.2.+' } } //~以下略 //下記は修正 dependencies { //compile fileTree(dir: 'libs', include: '*.jar') compile 'com.android.support:support-v4:21.0.2' //☆ }

Page 19: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

ASへのimport(1)•open an existing Android Studio project で初回IDEAプロジェクト構成を作るときに誤読するため(移行Wizが勝手に動いてしまう)下記ファイルは一旦リネムします •pom.xml(もしあれば) •project.properties

•1.2RCからwrapperで読み込む等の選択ダイアログがでなくなったので Configure>ProjectDefault>Settings からgradleを検索し下記の設定をします •offline workにチェック •Gradle VMOptionに -Xms512m を指定(gradle.propertiesに設定する形でも可)

•org.gradle.jvmargs=-Xmx512m -XX:MaxPermSize=512m

Page 20: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

ASへのimport(2)•open an existing Android Studio projectを実行します •main Projectのフォルダを選択します(例だと irof_history) •

•workspace情報が作成されるまで待ちます •実機に転送されることを確認します •pom.xml/project.properties を元に戻します •これでADTでも編集できる環境が整いました

Page 21: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

チューニング

Page 22: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

ASが重いという方のチェックポイント(1)• offline workにちゃんとチェックが入っていますか?

• offline workでのライブラリ追加手順 • build.gradleを編集 • ASのterminalで下記コマンドを実行

• sh gradlew tasks • GradleSyncを行う

• open gradle project として初回に開く前に • sh gradlew tasks

で事前に実行して依存モジュールを落としておくとスムーズに開けます • 逆にここで通信に失敗すると、IDEAのプロジェクトファイルが壊れま

す(失敗した場合は関連ファイルを削除してやり直してください)

• 通信+IDEAプロジェクトファイル作成 を行うと環境により激重になり失敗する可能性が高くなります

Page 23: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

ASが重いという方のチェックポイント(1)• gradlewを使ってビルドを前提にしている時

• gradle/wrapper/gradle-wrapper.propertiesのdistributionUrlがhttpになってませんか? • offlineビルドでもhttp記述だと通信しようとして重くなる事有フォルダ直下にDLして置いておくほうがベター

• daemon/parallel モードで動かすとローカルのgradlewキャッシュの 判定が上手くいかないことが多くて多重DL等が発生して重くなったり

• 直下ではなく下記なフルパス指定でもOKdistributionUrl=file:/D:/workspace/apk/gradle-2.2.1-all.zip

#Wed Apr 10 15:27:10 PDT 2013 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists #distributionUrl=http\://services.gradle.org/distributions/gradle-2.2.1-all.zip distributionUrl=gradle-2.2.1-all.zip

Page 24: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

ASが重いという方のチェックポイント(3)• submoduleの数が多くないですか?

• 基本ソース弄らないのであればsubmoduleのaarを作成して下記のようにバイナリ参照する方が軽くなります • local Repositoryにupload(よくブログに載ってる方法)

• この手のprojectがgithubで上がってよく動かせないことも多々(汗 • ローカルでaar参照

•軽くなる理由 •aar参照形式 •解凍してapkバイナリに結合するのみ (実行されるのはmain projectのタスク内)

• submodule形式 •単純に実行されるタスク数が多い •taskのinputs/outputsの指定により フォルダの再帰検索等をしていてUP-TO-DATE等のチェックをしている •http://siosio.hatenablog.com/entry/2014/08/31/002105 らへんの話 •task.onlyIf{ } でも同じようなことが出来る

Page 25: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

localでのaarの作成の仕方•submodule側作業 •gradlew/gradlew.bat/gradleフォルダコピー •workspace直下のbuild.gradleから下記の記述を移植します(最上部挿入) •sh gradlew assemble で aarを作成する

buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.2.+' } }

Page 26: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

localでのaarの参照の仕方•main project側作業 •libs_aarフォルダに 作成したLobi-5.0-debug.aarをコピー •build.gradleに記述を変更/追加 •settings.gradleからsubmoduleのエントリを消去

repositories { flatDir { dirs 'libs_aar' } } dependencies { //compile project(':Lobi-5.0') compile(name:'Lobi-5.0-debug', ext:'aar') }

//include ':play-services-6.1.71' include ':ArcMenu' include ':QuickActionLib' //include ':Lobi-5.0' project(':QuickActionLib').projectDir = new File(settingsDir,'../QuickActionLib') project(':ArcMenu').projectDir = new File(settingsDir,'../ArcMenu') //project(‘:play-services-6.1.71’).projectDir = new File(settingsDir,'../play-services-6.1.71') //project(‘:Lobi-5.0’).projectDir = new File(settingsDir,'../Lobi-5.0')

Page 27: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

IDE固有の話

Page 28: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

■ADT=ASの機能対応メモ• ADTとCodeFommaterを一致させたい • EclipseCodeFormatterを使う(.settingフォルダを参照共有)

• コードフォーマッターが保存時にかからない(マクロを定義して使う) • http://qiita.com/konifar/items/1f56c82490986d1613a8 • http://qiita.com/chocomelon/items/46810763a5be0a433158

• 操作ファイルとツリーが連動したい • Projectウィンドウの設定で「Autoscroll from Source」チェック

• デバック実行が途中からアタッチしたい • Attach debugger to Android proccess で接続

Page 29: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

■ASが快適だという話に関しての考察•ADTのようにauto buildがデフォルトでないからです •プロジェクトを開くときのindex作成はADTと実は同じくらいかかります (aar参照形式で改善されます) •FileScannerの再帰でフォルダ検索処理が遅いという話も(特にWin) •因みに雑知識ですが、submoduleとaar形式では build/intermediates/exploded-aar/XXX の展開先が違います

•逆にbuildするまでproblemが表示されないのでエラーがわかりづらい時もあります

•ADT遅延の一因のandroid.jarのソース参照も下記設定をすれば多少改善されます •ライブラリプロジェクトも含めてtarget sdkを一致する •ANDROID_HOME\sources\android-22 をたとえばzip圧縮する •Property>Java Build Path •Librarys>GooglePlay>android.jar>Source Attachments •Editで圧縮した android-22.zip参照

•Eclipseでaar形式のAndroidライブラリを取り込む方法 •http://qiita.com/ksoichiro/items/f68e19e70d6635a7be18 •試してみましたがすごい微妙でした(jarも展開)使わないほうがいいと思います

Page 30: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

Eclipseのgradle対応の話•現在Cloud Foundation ではなくGradlewareがサポートしているらしい •EclipseMarketから入手可能

•右クリックからbuild.gradleがbuild.xmlのように実行できるらしい •デフォルトだとwarpperみない、daemon有なので設定>Gradle EnlDE の項目等を変更すること

Page 31: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

ASベースのライブラリの共用に関して•gradleが落としてくるjarの場所 •ADTでやる場合、gradleビルドのものを共用したい場合、 •gradlew tasks 等を実行後、下記の場所からjarをコピー •$HOME/.gradle/caches/modules-2/files-2.1

•古いjar(library project)がほしい(support-lib/google-play-lib等) •1) Task実行後の build/intermediates/exploded-aar 辺りから取得 •2) Local Repositoryからaarを取得 •ANDROID_SDK_HOME/extras/android/m2repository •ANDROID_SDK_HOME/extras/google/m2repository •support-v4-21.0.2.aar => .zipに拡張子を変更して解凍 •class.jar => support-v4-21.0.2.jar に変更

•resフォルダ等リソースがある場合にはフォルダごとコピーしてきて ライブラリプロジェクトっぽい体裁を整えて利用する •jar => libsフォルダを作って入れる •srcフォルダ作成 •project.propties等足りないファイルを他のライブラリプロジェクトからもらってきて補う •.projectファイルを編集して、フォルダ名と一致させる 等

Page 32: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

その他

Page 33: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

知っておくといい記述(1)• AndroidManifest.xmlから設定を読み込むDSL記述

import com.android.builder.core.DefaultManifestParser

android { defaultConfig { def manifestParser = new DefaultManifestParser() applicationId = manifestParser.getPackage(android.sourceSets.main.manifest.srcFile) versionName = manifestParser.getVersionName(android.sourceSets.main.manifest.srcFile)

def manifest = new XmlSlurper().parse(android.sourceSets.main.manifest.srcFile) versionCode manifest.'@android:versionCode'.text() as int minSdkVersion manifestParser.getMinSdkVersion(android.sourceSets.main.manifest.srcFile) targetSdkVersion manifestParser.getTargetSdkVersion(android.sourceSets.main.manifest.srcFile) }}

Page 34: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

知っておくといい記述(2)• 普段release/特定Flavors使わないから BuildValiantから非表示にしたい

• 因みにtestという名前のBuildType/Flavorsは作れないようです

def isDebug = true if(isDebug){ android.variantFilter { variant -> //無効にしたいBuildType指定 if (variant.buildType.name.equals("release")){ variant.setIgnore(true); }

//無効にしたいFlavors指定 def flavorName=variant.getFlavors().get(0).name if(flavorName.equals(‘hoge')){

variant.setIgnore(true); } } }

Page 35: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

知っておくといい記述(3)• build.gradleをgit管理しだすとローカルでライブラリを試している時 直に書いてしまうとブランチ切り替えでコンフリクトして結構面倒なことが有ります

• 実はbuildType/dependencies 等の設定も外出しできて、 build.gradleファイルも最終的にマージされて実行されるので便利 • ただしAndroidTestのDSLはカスタムbuildTypeには適応されませんでした

//glib_compile.gradle android { buildTypes { glib.initWith(buildTypes.debug) glib { debuggable = true zipAlignEnabled false minifyEnabled false signingConfig signingConfigs.debug proguardFiles getDefaultProguardFile('proguard-android.txt'), ‘proguard-project.pro' } } } dependencies { //Glide glibCompile 'com.github.bumptech.glide:glide:3.5.2' glibCompile 'com.github.bumptech.glide:okhttp-integration:1.2.2' glibCompile 'com.github.bumptech.glide:volley-integration:1.2.2' glibCompile 'com.mcxiaoke.volley:library:1.0.+' }

//build.gradle apply from: ‘glib_compile.gradle'

Page 36: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

■packageNameSuffix/applicationIdSuffix に関してのメモ

•packageNameSuffix •変更するとContentProvider系で影響が出ます •http://stackoverflow.com/questions/16777534/using-build-types-in-gradle-to-run-same-app-that-uses-contentprovider-on-one-dev •http://qiita.com/ginsyama/items/574b13b755554252c9b5 あたりの対応が必要なようですあまり知見的な情報が出てこないので対応すると大変かも

•applicationIdSuffix •layout.xml等で下記のようになります (layout.xml系まで書き換えてくれないからだと思われます) •NG: xmlns:irof=“http://schemas.android.com/apk/res/パッケージ名" •OK: xmlns:irof=“http://schemas.android.com/apk/res-auto"

Page 37: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

(参考)NDKのDSLに関して(1)• 事前準備として local.propertiesに下記の定義をしておく必要が有

• sdk.dir=XXX • ndk.dir=XXX

と定義すると下記の変数として参照ができます • android.sdkDirectory • android.ndkDirectory

• ソースをコンパイルする場合は • sourceSets.main.jni.srcDirs=[‘jni’] • 現在は毎回ビルド走ってしまうということはないようです • ただeclipseのようにjniLibsの位置に入るわけではないのでそこら辺も共有したければ自分でcopyTaskを書く必要はあります

• コンパイル済みのsoを利用する場合は • sourceSets.main.jniLibs.srcDirs=[‘libs']

• 上記の2つのルートは最終的に下記のフォルダ等に格納されます • build/intermediates/exploded-aar/XXX/jni/armeabi-v7a

Page 38: Eclipse ADTとAndroidStudio両方で動かせる開発環境構築

(参考)NDKのDSLに関して(2)android { buildTypes { debug { debuggable true jniDebugBuild true ndk { moduleName "hello-jni" stl “gnustl_shared” //or gnustl_static cFlag “-std=c99 -I${project.buildDir}/jni/incude”

abiFilters "armeabi", "armeabi-v7a", “x86" //or “all” ldLibs “log" } } }

moduleName モジュール名

stl 共有ライブラリを作成する場合は “gnustl_shared”指定

cFlag コンパイルフラグ

abiFilters CPUアーキテクチャを指定

ldLibs ライブラリを用いる場合はここに指定