ANDROID APP
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
286 บทที่ 11 เทคนิคขั้นสูงสำาหรับพัฒนาแอพบนแอนดรอยด์<br />
ชุดคำสั่งที่ 11.5 jni/Android.mk<br />
LOCAL_PATH := $(call my-dir)<br />
include $(CLEAR_VARS)<br />
LOCAL_MODULE := ndkcookbook<br />
LOCAL_SRC_FILES := cookbook.c<br />
include $(BUILD_SHARED_LIBRARY)<br />
ขั้นตอนต่อไปจะเป็นการบิวด์ไลบรารี ใน NDK-r4 มีสคริปต์ชื่อ ndk-build อยู่ในไดเร็กทอรี<br />
NDK ซึ่งจะใช้ในการบิวด์โปรเจ็กต์ รวมถึงไลบรารีอื่นๆ ที่เกี่ยวข้อง สำหรับใน NDK เวอร์ชั่นก่อนหน้านี้<br />
เราจะใช้คำสั่ง make <strong>APP</strong>=NAME_OF_<strong>APP</strong>LICATION แทน หลังจากที่บิวด์ไลบรารีแล้ว<br />
โฟลเดอร์ lib/ ก็จะถูกสร้างขึ้น และเก็บไฟล์ไลบรารี libndkcookbook.so เอาไว้ พร้อมทั้งมีไฟล์<br />
gdb จำนวน 2 ไฟล์เพื่อใช้ประโยชน์ในการดีบั๊กแอพด้วย<br />
แอคทิวิตี้ที่จะเรียกใช้งานไลบรารีนี้จะใช้คำสั่ง System.loadLibrary() เพื่อโหลดไลบรารี<br />
ndkcookbook ดังแสดงไว้ในชุดคำสั่งที่ 11.6 ซึ่งผลการทำงานของแอพจะแสดงไว้ในรูปที่ 11.2<br />
ชุดคำสั่งที่ 11.6 src/com/cookbook/advance/ndk/ndk.java<br />
package com.cookbook.advance.ndk;<br />
import android.app.Activity;<br />
import android.widget.TextView;<br />
import android.os.Bundle;<br />
public class ndk extends Activity {<br />
@Override<br />
public void onCreate(Bundle savedInstanceState) {<br />
super.onCreate(savedInstanceState);<br />
TextView tv = new TextView(this);<br />
tv.setText(" native calculation on factorial :"+factorial(30));<br />
setContentView(tv);<br />
}<br />
public static native int factorial(int n);<br />
static {<br />
System.loadLibrary("ndkcookbook");<br />
}<br />
}