Showing posts with label android. Show all posts
Showing posts with label android. Show all posts

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

          └── 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改回唯讀狀態

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裝置只要能夠支援某一個類別,就可以支援符合該類別的所有設備。

Tuesday, August 16, 2011

Ubuntu 11.04 下安裝配置JDK 7 - snowdrem - 博客頻道- CSDN.NET

Ref : Ubuntu 11.04 下安裝配置JDK 7 - snowdrem - 博客頻道- CSDN.NET

第一步:下載jdk-7-linux-i586.tar.gz

  1. wget -c http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-i586.tar.gz
(注:如果下載不下來,建議使用迅雷下載,然後拷貝到Linux系統上。)

第二步:解壓安裝

  1. sudo tar zxvf ./jdk-7-linux-i586.tar.gz -C /usr/lib/jvm
  2. cd /usr/lib/jvm
  3. sudo mv jdk1.7.0/ java-7-sun

第三步:修改環境變量

  1. vim ~/.bashrc
添加:
  1. export JAVA_HOME=/usr/lib/jvm/java-7-sun
  2. export JRE_HOME=${JAVA_HOME}/jre
  3. export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
  4. export PATH=${JAVA_HOME}/bin:$PATH
保存退出,輸入以下命令使之立即生效。
  1. source ~/.bashrc

##HIDEME##