android 一步一步建立jni樣本

來源:互聯網
上載者:User

1.建立activity

package com.example.mycocos2dbyjni;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

private Button btnTestCCAnim;
private TextView tView;

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

btnTestCCAnim = (Button) findViewById(R.id.button1);
btnTestCCAnim.setOnClickListener(this);
tView = (TextView) findViewById(R.id.textView1);
tView.setText(stringFromJNI());// 調用native 方法獲得string
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

@Override
public void onClick(View v) {
if(v == btnTestCCAnim){
// run cocos2d-x animation

}

}

public native String  stringFromJNI();// 聲明c中的方法

//load cc-jni庫, cc-jni庫由ndk編譯來,後面會講到

static{    
        System.loadLibrary("cc-jni");    
    } 

}

2. 由javah,產生c的標頭檔(可參見:http://tech.ddvip.com/2012-10/1351226397184207.html)

cd到項目的根目錄

運行命令:

 javah -classpath bin/classes -d jni com.example.mycocos2dbyjni.MainActivity

可產生.h檔案(.h上面2個檔案不用理會,後面會產生)

3. 由.h檔案產生c/c++檔案

eclipse裡面建立c++檔案失敗了,我是將ndk範例程式碼helloJni的c檔案copy過來改名成

並將com_example_mycocos2dbyjni_MainActivity.c中的方法改為.h中聲明的方法。

4. 建立android.mk檔案

同第三步也是copy過來做修改的。

Android.mk的檔案內容:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := cc-jni

LOCAL_SRC_FILES := com_example_mycocos2dbyjni_MainActivity.c

include $(BUILD_SHARED_LIBRARY)

5.cd到 jni目錄,然後運行ndk-build, 會在libs下產生libcc-jni.so 庫檔案,此時運行android項目又失敗了,後來我從範例程式碼中把libc.so拷貝過來就成功了!!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.