详细Android Studio Jni 调试

Android Studio + NDK来实现JNI.


一、   Android Studo 环境配置如下:

 (1).Android Studio下载LLDB+NDK并安装。



   




(2)配置安装好的NDK路径。


  


(3)配置一些快捷方式。


 




 
javah	用于生成头文件
	Program:$JDKPath$/bin/javah

	Parameters:-classpath . -jni -d $ModuleFileDir$/src/main/jni $FileClass$
         Working directory:$ModuleFileDir$/src/main/Java

 
       ndk-build  用于构建so包
	注意:MAC/Linux用ndk-build,没有.cmd后缀
	Program:C:\Develop\Android\sdk\ndk-bundle\ndk-build.cmd
	Parameters:什么都不用填
	Working directory:$ProjectFileDir$/app/src/main

 
        ndk-build clean	清除so包
	注意:MAC/Linux用ndk-build,没有.cmd后缀
	Program:C:\Develop\Android\sdk\ndk-bundle\ndk-build.cmd
	Parameters:clean
	Working directory:$ProjectFileDir$/app/src/main
(4)配置调试工具
 

选择Defaults。
   



上面那个系统默认的是调试Java代码的。 
下面那个是调试c/c++代码的。
二、配置项目
(1)gradle-experimental与gradle-wrapper相对应的版本
在build.gradle中
dependencies {

    classpath "com.android.tools.build:gradle-experimental:0.7.0"

   // classpath 'com.android.tools.build:gradle:2.1.0-alpha1'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
gradle-wrapper.properties中
#Mon Dec 28 10:00:20 PST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
gradle-experimental与gradle-wrapper相对应的版本号如下图
版本号对比

 (2)修改app->build.gradle

 

//apply plugin: 'com.android.application'
apply plugin: 'com.android.model.application'//使用新的

model {

    android {
        compileSdkVersion 24
        buildToolsVersion "24.0.2"

        defaultConfig{
            applicationId "com.silabs.blood_pressure_demo"
            versionCode 1
            versionName "1.0"
            minSdkVersion.apiLevel 17
            targetSdkVersion.apiLevel 24

        }

        buildTypes {
            release {
                minifyEnabled false
                proguardFiles.add(file("proguard-rules.pro"))
            }
        }


        ndk {
            moduleName  "ppgecgs"   //<=====>LOCAL_MODULE  := ppgecgs
            ldLibs.addAll(["android","log"])    //  <==加载log
            stl  "gnustl_static"   //<===用C++静态库

        }

        productFlavors {      //加载app/src/main/libs

//        create("arm") {
//            ndk.abiFilters.add("armeabi")
//        }
//        create("arm7") {
//            ndk.abiFilters.add("armeabi-v7a")
//        }
//        create("arm8") {
//            ndk.abiFilters.add("arm64-v8a")
//        }


            create("all")  //全部
         }

        
    }

}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha1'
    testCompile 'junit:junit:4.12'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
    androidTestCompile 'com.android.support.test:runner:0.5'
    androidTestCompile 'com.android.support:support-annotations:24.2.1'
    compile 'com.google.android.gms:play-services-appindexing:8.4.0'
}

三、略jni知识,网上一大把资料。

    使用配置好android studo javah工具。


 

    


    使用配置好android studo  ndk-build / ndk-build clean工具。


   




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio是一款由Google推出的集成开发环境,专门用于开发Android应用的工具。而JNI(Java Native Interface)是Android开发中用于实现Java和本地代码(如C、C++)之间相互调用的技术。 首先,Android Studio在2021年继续是Android应用开发的主要开发环境之一。它提供了丰富的功能,如代码编辑器、调试器、布局设计工具等,使开发者可以方便地创建、调试和部署Android应用。2021年的版本可能会有更新的特性和改进,以进一步提高开发效率和开发者体验。 而在Android开发中,JNI是一个重要的技术,它允许开发者将本地代码与Java代码进行交互。通过JNI,开发者可以在Java代码中调用本地代码的功能,从而实现一些高性能、底层的操作,比如图像处理、音视频编解码等。同时,本地代码也可以调用Java代码的功能,实现双向的数据传输。 对于开发者来说,学习和使用JNI需要一定的C或C++编程经验。首先,需要编写本地代码,通过JNI提供的接口与Java代码进行交互;然后,在Java代码中进行JNI调用,使用本地代码的功能。在Android Studio中,可以通过JNI支持来创建、编译和调试本地代码,以及在Java代码中进行JNI调用。 总而言之,Android StudioJNIAndroid应用开发中的两个重要组成部分。Android Studio提供了开发Android应用所需的工具和环境,而JNI则提供了Java和本地代码之间的桥梁,使开发者可以更灵活和高效地开发Android应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值