Showing posts with label android. Show all posts
Showing posts with label android. Show all posts
Friday, December 30, 2011
Wednesday, October 26, 2011
Tuesday, October 25, 2011
Monday, October 24, 2011
Android Native C 之 Helloworld的四種編譯方式_StackDoc
Android Native C 之 Helloworld的四種編譯方式_StackDoc
vim helloworld.c
#include
int main()
{
printf("Hello World!\n");
return 0;
}
vim Android.mk
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:=hello.c
LOCAL_MODULE := helloworld
LOCAL_MODULE_TAGS := optional
include $(BUILD_EXECUTABLE)
目錄結構 ─ helloworld
├── jni
├── Android.mk
├── jni
├── Android.mk
└── hello.c
[root@fontlose nativity]# cd hello
[root@fontlose hello]# export NDK_PROJECT_PATH=`pwd`
[root@fontlose hello]# ndk-build
Install : helloworld => libs/armeabi/helloworld
[root@fontlose hello]# adb push libs/armeabi/helloworld /data
44 KB/s (2176 bytes in 0.047s)
[root@fontlose hello]# adb shell
/ # cd /data
/data # ls -l
-rwxrwxrwx root root 2176 2011-08-07 03:01 helloworld
/data # ./helloworld
Hello World!
Note:
我在Linux編完再透過Windos的adb傳 結果helloworld權限跑掉
還好之前有裝busybox ,
[xxx@xxx]#busybox chmod 755 helloworld
Monday, October 17, 2011
Android安裝busybox(Universal Androot適用) - Android Rooted 專用軟件 GPhonefans.net
因為Universal Androot(以下簡稱UA)算是比較簡易的root法
所以在根的過程當中不會把busybox安裝進去; j- R* h" }9 a& S# l
busybox本身的功用在於提供root後的機器簡易檔案存取的指令
就是說裝了busybox之後,原本要寫好幾行的指令可以改成偷懶只寫一行就搞定! ?+ Q* h4 W: @: G' Y
所以有部分的工具軟體仍然是必須要搭配busybox使用的(簡單的說就是開發者很懶)# o v& H! ^8 y# J' B- J
! K1 o( r9 Q: V
首先請先安裝Android SDK(不會的自己上網google一下); B9 ` S {4 D* y3 d
然後將下面的附件(busybox)放到SDK中的Tools資料夾內
busybox (417.34 KB) 下載次數: 77! r. x7 v6 {& ]4 M: K4 G# L
2010-8-18 02:36
把手機接上電腦,記得先去"設定->應用程式->開發"裡面把USB偵錯打勾- p2 U* d* A6 b+ A' E
開始->執行6 u4 a7 t; \; z* ~3 b3 \* X, ^. b
CMD
cd\xxxxx\tools
//此處的xxxxx=你的Android SDK安裝路徑/ {% i, T& n# N* B, q
adb push busybox /mnt/sdcard/busybox
//把busybox丟到卡上, X" {2 g) U2 b
adb shell. r- P1 v0 Q' l0 K. ?+ F' _) M2 t g
//連線到手機內進行操作
! \1 b: a2 I! E) Q$ d- y. T
% H( j/ L/ s0 p
su, M6 T) _+ `) z
//取得管理者權限(這裡如果是用UA的朋友麻煩看一下你的機器,應該會有一個允許存取的確認,點allow就好)
7 Z( n" ~2 }; U! n4 M, H
mount -o rw,remount /dev/block/mtdblock3 /system
//把system改為可讀寫狀態(system=ROM)7 U' C# ]0 S+ X% E1 ^! e7 `
% w0 m% a( y1 C4 e
cat /mnt/sdcard/busybox > /system/bin/busybox
//把busybox複製到system中
. N- R" {/ q0 n0 F" |: `& l
, q/ s: p8 ~! e1 q
rm /mnt/sdcard/busybox: D/ i p* Q7 G* d% |# L6 |9 V/ T# Q
//移除掉記憶卡上的busybox
; J8 G$ [! `: x5 r+ ~! r k
chmod 755 /system/bin/busybox
//修改system內busybox的權限
# s! X4 |% R0 x! Q* C
mount -o ro,remount /dev/block/mtdblock3 /system3 `6 B- L, J/ e: o
//把system改回唯讀狀態
所以在根的過程當中不會把busybox安裝進去; j- R* h" }9 a& S# l
busybox本身的功用在於提供root後的機器簡易檔案存取的指令
就是說裝了busybox之後,原本要寫好幾行的指令可以改成偷懶只寫一行就搞定! ?+ Q* h4 W: @: G' Y
所以有部分的工具軟體仍然是必須要搭配busybox使用的(簡單的說就是開發者很懶)# o v& H! ^8 y# J' B- J
! K1 o( r9 Q: V
首先請先安裝Android SDK(不會的自己上網google一下); B9 ` S {4 D* y3 d
然後將下面的附件(busybox)放到SDK中的Tools資料夾內
busybox (417.34 KB) 下載次數: 77! r. x7 v6 {& ]4 M: K4 G# L
2010-8-18 02:36
把手機接上電腦,記得先去"設定->應用程式->開發"裡面把USB偵錯打勾- p2 U* d* A6 b+ A' E
開始->執行6 u4 a7 t; \; z* ~3 b3 \* X, ^. b
CMD
cd\xxxxx\tools
//此處的xxxxx=你的Android SDK安裝路徑/ {% i, T& n# N* B, q
adb push busybox /mnt/sdcard/busybox
//把busybox丟到卡上, X" {2 g) U2 b
adb shell. r- P1 v0 Q' l0 K. ?+ F' _) M2 t g
//連線到手機內進行操作
! \1 b: a2 I! E) Q$ d- y. T
% H( j/ L/ s0 p
su, M6 T) _+ `) z
//取得管理者權限(這裡如果是用UA的朋友麻煩看一下你的機器,應該會有一個允許存取的確認,點allow就好)
7 Z( n" ~2 }; U! n4 M, H
mount -o rw,remount /dev/block/mtdblock3 /system
//把system改為可讀寫狀態(system=ROM)7 U' C# ]0 S+ X% E1 ^! e7 `
% w0 m% a( y1 C4 e
cat /mnt/sdcard/busybox > /system/bin/busybox
//把busybox複製到system中
. N- R" {/ q0 n0 F" |: `& l
, q/ s: p8 ~! e1 q
rm /mnt/sdcard/busybox: D/ i p* Q7 G* d% |# L6 |9 V/ T# Q
//移除掉記憶卡上的busybox
; J8 G$ [! `: x5 r+ ~! r k
chmod 755 /system/bin/busybox
//修改system內busybox的權限
# s! X4 |% R0 x! Q* C
mount -o ro,remount /dev/block/mtdblock3 /system3 `6 B- L, J/ e: o
//把system改回唯讀狀態
Wednesday, August 17, 2011
資訊 - [分享]USB OTG技術簡介 - 史萊姆論壇
參考 : 資訊 - [分享]USB OTG技術簡介 - 史萊姆論壇
OTG是On The Go的縮寫,在越來越多的USB裝置出現後,漸漸有部分裝置想要脫離電腦的管束互相連結,但是USB舊有的架構限制了USB裝置間連結的可能性。所以當兩個USB裝置碰在一起,沒有任何一端可以做主。對此,USB協會又推出了USB OTG的規範來彌補這樣子的缺陷。
USB OTG並不是一個獨立於USB 2.0存在的規範,所有在USB OTG中未提到的事項都必須以USB 2.0的規範為準。因此USB OTG存在的目的僅在於提供一個方式,讓兩個USB裝置得以連結。USB OTG 1.0中提到一個具備雙重角色裝置(Dual-role device)的概念。就是說一個OTG的裝置,可以當主機,也可以當設備端。如此一來,當兩個OTG裝置遇上的時候,就可以由其中一方當作主機,另一方當作設備端。就可以完全符合USB對兩個裝置相連的需求了。除此之外,OTG的裝置還必須具備以下的特性:
1. 有限的主機功能。
2. 為設備端時必須支援全速傳輸。
3. 為主機端時要支援全速的USB設備,但不強支援高速或是低速設備。
4. 當OTG裝置成為主機端時,並沒有辦法真的支援所有的USB裝置,因此在道義上OTG裝置必須將其所支援的設備清單列出,以利消費者選擇可連接的設備。
5. 必須告知使用者傳輸的狀態。
6. 至少能提供8mA的電源給設備端。
7. 支援SRP(Session request protocol):
當OTG裝置成為主機端時,可以將Vbus的電源切斷,以節省電源。SRP則是提供一個機制讓設備端告知主機端重新提供電源,並且恢復在USB線路上的相關活動
8. 支援HNP(Host negotiation protocol):
當兩個OTG裝置相連結時,由於兩個裝置都有當主機端的能力,所以會先由連接兩個裝置的纜線(Mini-A plug to Mini-B plug)決定哪一個裝置(連接Mini-A plug的裝置)在一開始的時候扮演主機(A-device)的角色,另一裝置則是扮演設備端(B-device)的角色。當兩個裝置經由纜線結合在一起之後,若是想要互換角色,則必須經由HNP所定義的訊號溝通過之後,才可以互換角色。
9. 僅能有一個且唯一的一個Mini-AB插座。
USB OTG提供了一個讓兩個USB裝置連結的機制,原本要由電腦做的事情,現在都要落在當主機端的OTG裝置身上。因此,為了要對應不同的設備,就需要不同的驅動程式。原本USB裝置的製造商只要熟悉自己的產品就可以了,在加入OTG的概念後,就必須要對想要連結的設備有一定的了解。如此便能夠使用相同資料格式,相同傳輸方式來傳輸資料。藉由這些不同裝置類別的規範,就有機會大大簡化在OTG裝置上對驅動程式的需求。OTG裝置只要能夠支援某一個類別,就可以支援符合該類別的所有設備。
USB OTG並不是一個獨立於USB 2.0存在的規範,所有在USB OTG中未提到的事項都必須以USB 2.0的規範為準。因此USB OTG存在的目的僅在於提供一個方式,讓兩個USB裝置得以連結。USB OTG 1.0中提到一個具備雙重角色裝置(Dual-role device)的概念。就是說一個OTG的裝置,可以當主機,也可以當設備端。如此一來,當兩個OTG裝置遇上的時候,就可以由其中一方當作主機,另一方當作設備端。就可以完全符合USB對兩個裝置相連的需求了。除此之外,OTG的裝置還必須具備以下的特性:
1. 有限的主機功能。
2. 為設備端時必須支援全速傳輸。
3. 為主機端時要支援全速的USB設備,但不強支援高速或是低速設備。
4. 當OTG裝置成為主機端時,並沒有辦法真的支援所有的USB裝置,因此在道義上OTG裝置必須將其所支援的設備清單列出,以利消費者選擇可連接的設備。
5. 必須告知使用者傳輸的狀態。
6. 至少能提供8mA的電源給設備端。
7. 支援SRP(Session request protocol):
當OTG裝置成為主機端時,可以將Vbus的電源切斷,以節省電源。SRP則是提供一個機制讓設備端告知主機端重新提供電源,並且恢復在USB線路上的相關活動
8. 支援HNP(Host negotiation protocol):
當兩個OTG裝置相連結時,由於兩個裝置都有當主機端的能力,所以會先由連接兩個裝置的纜線(Mini-A plug to Mini-B plug)決定哪一個裝置(連接Mini-A plug的裝置)在一開始的時候扮演主機(A-device)的角色,另一裝置則是扮演設備端(B-device)的角色。當兩個裝置經由纜線結合在一起之後,若是想要互換角色,則必須經由HNP所定義的訊號溝通過之後,才可以互換角色。
9. 僅能有一個且唯一的一個Mini-AB插座。
USB OTG提供了一個讓兩個USB裝置連結的機制,原本要由電腦做的事情,現在都要落在當主機端的OTG裝置身上。因此,為了要對應不同的設備,就需要不同的驅動程式。原本USB裝置的製造商只要熟悉自己的產品就可以了,在加入OTG的概念後,就必須要對想要連結的設備有一定的了解。如此便能夠使用相同資料格式,相同傳輸方式來傳輸資料。藉由這些不同裝置類別的規範,就有機會大大簡化在OTG裝置上對驅動程式的需求。OTG裝置只要能夠支援某一個類別,就可以支援符合該類別的所有設備。
Tuesday, August 16, 2011
Ubuntu 11.04 下安裝配置JDK 7 - snowdrem - 博客頻道- CSDN.NET
Ref : Ubuntu 11.04 下安裝配置JDK 7 - snowdrem - 博客頻道- CSDN.NET
(注:如果下載不下來,建議使用迅雷下載,然後拷貝到Linux系統上。)
添加:
保存退出,輸入以下命令使之立即生效。
第一步:下載jdk-7-linux-i586.tar.gz
- wget -c http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-i586.tar.gz
第二步:解壓安裝
- sudo tar zxvf ./jdk-7-linux-i586.tar.gz -C /usr/lib/jvm
- cd /usr/lib/jvm
- sudo mv jdk1.7.0/ java-7-sun
第三步:修改環境變量
- vim ~/.bashrc
- export JAVA_HOME=/usr/lib/jvm/java-7-sun
- export JRE_HOME=${JAVA_HOME}/jre
- export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
- export PATH=${JAVA_HOME}/bin:$PATH
- source ~/.bashrc
Subscribe to:
Posts (Atom)