国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

AndroidStudio NDK開發(fā)最佳入門實踐

macg0406 / 932人閱讀

摘要:開發(fā)最佳入門實踐網(wǎng)上一些介紹入門的教程,感覺都不是很完整和全面,也沒有告訴初學(xué)的同學(xué)們一些需要注意的地方。本文所介紹的是在上搭建最佳的開發(fā)環(huán)境,給使用的開發(fā)人員最大的方便。開發(fā)最佳入門實踐最后在程序中添加上加載庫文件的代碼。

AndroidStudio NDK開發(fā)最佳入門實踐

網(wǎng)上一些介紹AndroidStudio NDK入門的教程,感覺都不是很完整和全面,也沒有告訴初學(xué)AndroidStudio NDK的同學(xué)們一些需要注意的地方。網(wǎng)上的方法大多需要使用javah命令,使用本文的方法將不再使用該命令了,是不是方便了很多。
本文所介紹的是在AndroidStudio上搭建最佳的NDK開發(fā)環(huán)境,給使用NDK的開發(fā)人員最大的方便。
本人AndroidStudio版本2.0。
本人Gradle版本2.10。

1. Android NDK開發(fā)工具準(zhǔn)備

要進行Android NDK開發(fā),首先要下載Android NDK開發(fā)工具。可以在AndroidStudio上面的下載,也可以自己下載好了,然后將NDK的路徑設(shè)置為自己下載的Android NDK開發(fā)工具的路徑。Android NDK開發(fā)工具下載地址:http://wear.techbrood.com/tools/sdk/ndk/ 。

2. Gradle的相關(guān)配置

gradle插件不支持NDK(當(dāng)然用它也可以進行NDK開發(fā),就是非常不方便),我們需要使用gradle-experimental插件。gradle-experimental插件使用的時候與gradle插件稍微有點區(qū)別。

1. 我們來配置Project的build.gradle

配置Project的build.gradle很簡單就是將dependenciesclasspath的值改為對應(yīng)的gradle-experimental插件。

    dependencies {
        classpath "com.android.tools.build:gradle-experimental:0.7.0"
    }  
2. 我們來配置Module的build.gradle

先給出一個我配置的范例,然后說明那些需要注意的。

apply plugin: "com.android.model.application"

model {
    android {
        compileSdkVersion = 23
        buildToolsVersion = "23.0.2"
        defaultConfig {
            applicationId "com.lavor.ndklearning"
            minSdkVersion.apiLevel 15
            targetSdkVersion.apiLevel 23
            versionCode 4
            versionName "1.0.1"
        }
    }
    android.ndk {
        moduleName "lavor"
        ldLibs.addAll(["log"])
        cppFlags.add("-std=c++11")
        cppFlags.add("-fexceptions")
        platformVersion 15
        stl "gnustl_shared"
    }
    android.buildTypes {
        release {
            minifyEnabled = false
            proguardFiles.add(file("proguard-rules.txt"))
        }
    }
}
dependencies {
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:23.1.1"
    compile "com.android.support:recyclerview-v7:23.1.1"
    compile "com.android.support:design:23.1.1"
}  

首先在apply的時候我們引入的插件名稱由"com.android.application"變成了"com.android.model.application"

其次,在原來android的外層加入了一個model層次。

再次,原來在android的里面的塊,除了defaultConfig外,全部移除android塊放入model塊中與android并列,并且前面的名字加上android.

然后,compileSdkVersion 23buildToolsVersion "23.0.2"改成 compileSdkVersion = 23buildToolsVersion = "23.0.2",中間加上了=

其次,添加上android.ndk塊,塊中的moduleName表示C/C++代碼打包成so文件的名字。

再次,android.buildTypes塊中的proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"改成proguardFiles.add(file("proguard-rules.txt"))

最后,注意dependencies塊依然在最外層,它不在model塊中。

3. 開始NDK之旅

首先,在Android程序中添加一個native方法:public native String getString();

其次,我們注意到添加的native方法的方法名是紅色的,將鼠標(biāo)移動到方法名上(注意不能是括號里面或者后面),然后按下Alt+Enter快捷鍵,彈出一些解決的方法建議,點擊第一個Create Function...

再次,此時會自動建立一個與java目錄同級的jni目錄,在jni目錄自動建立一個c文件,在c文件中實現(xiàn)剛才的native方法。

然后,稍稍修改一下c文件中實現(xiàn)的native方法。

JNIEXPORT jstring JNICALL
Java_com_lavor_ndklearning_MainActivity_getString(JNIEnv *env, jobject instance) {
    // TODO
    return (*env)->NewStringUTF(env, "AndroidStudio NDK開發(fā)最佳入門實踐");
}  

最后在Android程序中添加上加載so庫文件的代碼。

       static {
        System.loadLibrary("lavor");
       }  

運行程序后界面如下:

AndroidStudio NDK開發(fā)入門介紹完畢。程序源代碼下載地址:https://github.com/lavor-zl/NDKLearning

注意:gradle的版本不能太低,不然會出錯,AndroidStudio版本也不能太低不然可能沒有集成C/C++編譯器,某些1.7的JDK可能會出錯,重新下載一個JDK就好了,并設(shè)置JDK的路徑。

歡迎關(guān)注我的微信公眾號:Android技術(shù)漫談

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/65961.html

相關(guān)文章

  • MVPArms官方首發(fā)一鍵生成組件化,體驗純傻瓜式組件化開發(fā)

    摘要:前言我在上篇文章中介紹了的官方快速組件化方案當(dāng)時一直強調(diào)是快速的組件化方案但是在文章中只提供了一個近萬字的官方文檔卻沒展現(xiàn)出這個組件化方案的快速之處看到近萬字的文檔后新手已經(jīng)開始瑟瑟發(fā)抖了覺得入門成本太高想放棄寫這篇文章的意義就是為了展現(xiàn)快 showImg(https://segmentfault.com/img/remote/1460000015444818); 前言 我在 上篇文章...

    Panda 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<