Android Studio NDK 开发的第一个例子 (windows 7)

本文档详细介绍了如何从Eclipse迁移到Android Studio,并通过具体步骤演示了如何在Android Studio中集成C/C++代码,包括创建项目、配置NDK、生成及调用本地方法等。

从此以后,可以从Eclipse彻底迁移到Android Studio了。

开发工具

1. Android Studio 0.6

2. Android NDK r9d

3. JDK 6

操作系统:windows 7 Professional X64

开发步骤

1. 打开Android Studio,创建一个新的Android项目。项目全部选择缺省设置。

2. 打开"app\src\main\java\MainActivity.java", 在这个类的最后面加入一个natvie方法。

public native String getStringFromNative();



3. 打开"Build > Make Project" 

4. 打开 Android Studio Terminal,生成头文件

C:\NativeApp\app\src\main>javah -d jni -classpath ..\..\build\intermediates\classes\debug com.example.nativeapp.app.MainActivity



头文件在 c:\NativeApp\app\src\main\jni\com_example_nativeapp_app_MainActivity.h

5. c文件

在c:\NativeApp\app\src\main\jni\ 目录下,新建一个main.c文件。实现我们在MainActivity类里面定义的native方法。

Note:如果这个目录下面就只有一个c文件。那么一定要再新建一个c文件,比如叫dummy.c 文件内容为空。

6. 设置NDK

打开local.properties,加入ndk路径:

sdk.dir=C\:/Users/android-sdk-windows
ndk.dir=C\:/Users/android-ndk-r9d-windows-x86_64/android-ndk-r9d



7. 修改build.gradle
defaultConfig {
        applicationId "com.example.nativeapp.app"
        minSdkVersion 9
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
        ndk {
            moduleName "nativeApp"
        }
    }



8. 最后一步:在Activity中调用native方法
public class MainActivity extends Activity {

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

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView view = (TextView) findViewById(R.id.native_text_view);
        view.setText(this.getStringFromNative());
    }

    public native String getStringFromNative();

}



点击"Run > Run 'app'

在我的Nexus 5上显示如下:
















转载于:https://my.oschina.net/u/145002/blog/277177

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值