編輯:Android開發實例
今天下午蛋疼地開始研究ndk和jni。
首先去下載一個Android ndk
http://dl.google.com/android/ndk/android-ndk-1.6_r1-windows.zip
我下載的是1.6版本的
然後去下載安裝一個Cygwin 這個安裝和下載方法自己google一下很多
這些都弄好了之後 進入我們的代碼環節
首先創建一個工程 如下圖
其中JNI.java
- package zy.myTestJni;
- public class JNI {
- public native void write();
- }
JniTest.java
- package zy.myTestJni;
- import android.app.Activity;
- import android.os.Bundle;
- public class JniTest extends Activity {
- /** Called when the activity is first created. */
- static {
- System.loadLibrary("myjni");
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- JNI j=new JNI();
- j.write();
- }
- }
然後用JNI.java來生成我們的頭文件
進入你的工程的bin目錄
執行下述代碼
D:\Users\ZY\workspace\myTestJni\bin>javah -classpath . -jni zy.myTestJni.JNI
然後生成了一個
zy_myTestJni_JNI.h文件
這個文件不用改
然後新建一個zy_myTestJni_JNI.c的文件
代碼為
- #include<stdio.h>
- #include <stdlib.h>
- #include "zy_myTestJni_JNI.h"
- JNIEXPORT void JNICALL Java_zy_myTestJni_JNI_write
- (JNIEnv *e, jobject j)
- {
- FILE * v=fopen("/sdcard/zy.txt","w+");
- fprintf(v,"aaaa");
- fclose(v);
- }
然後把這兩個文件拷貝到ndk路徑的app路徑下 新建一個myjni文件夾在建一個jni放進去
然後在myjni下新建一個Application.mk
- APP_PROJECT_PATH := $(call my-dir)
- APP_MODULES := myjni
在jni目錄下新建一個Android.mk
- # Copyright (C) 2009 The Android Open Source Project
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- #
- LOCAL_PATH := $(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_MODULE := myjni
- LOCAL_SRC_FILES := zy_myTestJni_JNI.c
- include $(BUILD_SHARED_LIBRARY)
接下來 我們來編譯我們的.so庫
然後進入到你的ndk目錄 我的目錄是這個
在cygwin裡用cd命令進入到這個ndk目錄
然後執行
bulid/host-setup.sh
執行 make APP=myjni -B
此時可以看到我們的myjni目錄下多了一個libs目錄 裡面有我們的.so文件
然後將整個libs目錄放到我們的Android工程下
在AndroidManifest.xml裡加上
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
- </uses-permission>
運行我們的代碼
可以看到 在sdcard下面建立了一個zy.txt 裡面的內容是aaaa
轉自:http://blog.csdn.net/Zengyangtech/archive/2010/11/30/6046170.aspx
本文使用Matrix實現Android實現圖片縮放與旋轉。示例代碼如下:代碼如下:package com.android.matrix;import androi
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩
Android應用程序可以在許多不同地區的許多設備上運行。為了使應用程序更具交互性,應用程序應該處理以適合應用程序將要使用的語言環境方面的文字,數字,文件等。在本章中,我
第一種方法的步驟: 1.在要Activity中實例化WebView組件:WebView webView = new WebView(this); 2.調用WebV