2011年3月2日 星期三

TraceView - 好用的效率檢視工具 on Android

這幾天在網路上亂逛看到的~

如果覺得程式跑太慢,可以利用這個工具

來看看是那個 function 跑了最久,或是比預期的久

就可以想辦法改進

2011年2月12日 星期六

Android JNI 中印 msg 到 Logcat

其實這滿簡單的

新增一個 debug.h

內容如下

#include <android/log.h>

#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG  , "TAG", __VA_ARGS__)
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, "TAG",__VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, "TAG",__VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN, "TAG",__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, "TAG",__VA_ARGS__)

五個 function 分別對應到 5 個 level 的 MSG

在Android.mk 中加上

LOCAL_LDLIBS :=  -L$(SYSROOT)/usr/lib -llog

接著在自己的 c 檔案裡面加上 #include "debug.h"

後來只要用 LOGE("error");

就可以印出來了

2011年2月11日 星期五

Android 中使用 Camera

1. 在 AndroidManifest.xml 中加上 permission 和 feature

<uses-permission android:name="android.permission.CAMERA">
<uses-feature android:name="android.hardware.camera">
<uses-feature android:name="android.hardware.camera.autofocus">


2. 再來在 layout 中加上 SurfaceView


<SurfaceView
android:id="@+id/surfaceView1"
android:layout_width="320px"
android:layout_height="240px">
</SurfaceView>

3. 程式碼

參考 Android SDK 網頁
http://developer.android.com/reference/android/hardware/Camera.html
下面是範例code

2011年1月18日 星期二

整合 Android 和 FFmpeg (使用 Eclipse + NDK) on Windows

NDK 的相關設定請看 Android 上自己寫 Native Funcion

不過需要去下載 NDK-r4,在window上使用r5可能會有指令太長的錯誤

首先,我們先去下載 FFmpeg 的 src code

這邊我們利用 rockplayer 的 ffmpeg

2011年1月15日 星期六

Android 上自己寫 Native Funcion with Eclipse (Windows JNI NDK)

最近剛好有些需要,就稍微研究了一下這個

研究這個花了好久,把學到的東西整理一下

系統環境: Windows 7 64-bit + Eclipse SDK 3.5.1 + Android 2.2

如果是 Linux 或是 Mac,除了 Cygwin 的步驟之外,應該大同小異

2011年1月14日 星期五

Android App 畫面方向控制

常常要用可是每次都忘記

所以記錄一下

一般來說,如果沒有特別設定的話

手機旋轉時OS就會重新啟動一次 Activity物件

有時候程式就會GG了