linux安裝androidsdk
『壹』 linux下android sdk怎麼安裝
一、下載android sdk
下載SD,選擇Linux(i386)。因為SDK只有32位的,如果裝的是64位系統,則要安裝ia32-libs,運行32位程序。
ubuntu安裝命令:sudo apt-get install ia32-libs(在Ubuntu中的命令)。
centos安裝命令:
yum install glibc.i686
下載完成後解壓,在終端進入到SDK的根目錄,然後執行:tools/android update sdk –no-ui即可開始和windows裡面一樣的更新。
二、配置環境變數
更新完成後配置環境變數。使用命令 vi /etc/profile 編輯文件profile,然後在下面增加下面內容:
export ANDROID_HOME=/opt/softwaretools/android-sdk-linux
export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH
/opt/softwaretools/android-sdk-linux為SDK的根目錄。
這個配置之後,以後要執行android裡面的命令,就不是需要進到這個目錄,直接可以在終端裡面輸入。
修改完成後,使用命令 :wq! 保存關閉文件,再執行命令 source /etc/profile 使配置生效一下。
在終端輸入:android,如果Android SDK Manager窗口出來了,就證明環境配置成功。
三、配置AVD
1、進入$SDK_HOME/toos目錄
2、命令窗口運行:./android avd
『貳』 linux怎麼搭建android開發環境
在ubuntu下搭建android開發環境,准備學習一下android開發。經過2個多小時,終於搭建成功。
1、安裝JDK
首先到oracle的官網上下載linux版本的JDK(網址為:http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u26-download-400750.html),這里選擇 Linux x86 - Self Extracting Installer。直接運行安裝,先把這個文件cp到你的安裝目錄下,然後在你的安裝目錄直接執行:
./jdk-6u26-linux-i586.bin
如果執行失敗是因為沒有執行許可權,那麼還需要加上執行許可權:
chmod +x ./jdk-6u26-linux-i586.bin
安裝程序會自動給你安裝到當前目錄的jdk1.6.0_26目錄下。程序安裝好了,接著需要設置環境變數。執行:
sudo gedit /etc/profile
執行中提示:(gedit:4849): Gtk-WARNING **: Attempting to store changes into `/root/.local這個錯誤,從網上搜索了一下,sudo mkdir -p /root/.local/share/ 也就是表示以超級用戶(sudo命令)身份創建目錄,這樣解決了這個問題。
在配置文件最後加入如下部分:
export JAVA_HOME=/home/jackwong/jdk1.6.0_26
export JRE_HOME=/home/jackwong/jdk1.6.0_26/jre
export PATH=/home/jackwong/jdk1.6.0_26/bin:$PATH
export CLASSPATH=.:/home/jackwong/jdk1.6.0_26/lib:/home/jackwong/jdk1.6.0_26/jre/lib
保存,然後注銷當前用戶,重新登錄,環境變數就生效了。
驗證是否安裝成功:
執行:
java -version
如果出現:
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b06)
Java HotSpot(TM) Server VM (build 20.0-b11, mixed mode)
這樣的信息,就說明OK了。
注意,ubuntu默認已經安裝了openjdk,所以你就算不安裝jdk,執行java -version也不會報錯,但是報告的信息和安裝了jdk是不一樣的,請注意區分。
2.安裝eclipse
目前官方推薦開發環境是eclipse+ADT。當然你完全可以採用其他任何一種開發環境,但是我還是選擇了官方的推薦,因為一切都是免費的。下載eclipse的地址是:http://www.eclipse.org/downloads/我下載的是32bit linux :
Eclipse IDE for Java Developers。
我下載下來的文件是eclipse-java-juno-SR1-linux-gtk.tar.gz
當然首先是解壓,執行命令:
tar zvxf eclipse-java-juno-SR1-linux-gtk.tar.gz
解壓成功之後,就出現了一個eclipse目錄。這個目錄就是安裝好的eclipse了,進入這個目錄,執行eclipse文件,即可啟動eclipse。
自己建立桌面啟動快捷方式,即桌面右鍵創建啟動器。
3.下載安裝Android SDK Starter Package
Android SDK Starter Package這個只是SDK的核心基本工具,有了它,再利用它的管理工具下載其他你需要到部分。看到這個目錄中有個android腳本文件了嗎?執行它,就會啟動Android SDK and AVD Manager,這個工具可以幫你下載其他你需要的部分,還可以創建模擬機。
下載地址是:http://developer.android.com/sdk/index.html
一般是下載最新版,我下載的:android-sdk_r21.1-linux.tgz。
接下來當然是解包了:tar zvxf android-sdk_r21.1-linux.tgz
解包完畢,就會在當前目錄下出現android-sdk-linux_x86目錄了。這個目錄下就是sdk的基本工具了。記住這個目錄,因為以後你運行工具或者設置ADT的時候,會需要這個目錄的!
4.安裝ADT(Android Development Tools)插件
ADT插件是google官方開發的Eclipse的一個插件,專門為Android應用開發而准備的。 啟動 Eclipse, 然後選擇 Help > Install New Software....。單擊右上角的Add按鈕,在彈出的 Add Repository 對話框中,Name一欄目填寫 "ADT Plugin",在Location一欄就有兩個選擇,一個是填入下載網址:https://dl-ssl.google.com/android/eclipse/,這樣就可以網上下載安裝。第二個選擇是如果我已經下載了ADT Plugin,那麼就單擊旁邊的Archive按鈕,直接找到插件所在到包即可。這里我用的是第一種方法。比如我用的就是第二種,把Developer SDK Tools前面的checkbox選上,然後單擊下面的next按鈕,然後就等著安裝進度條完成吧,其中會出現安裝軟體的列表,你單擊Next即可,然後會出現license,你必須選擇agree才行,然後單擊finish就完成了。安裝完成之後,重啟eclipse即可。
5.配置ADT 插件
配置的內容就是要修改在eclipse中到ADT插件的引用指向,需要指向前面安裝好的Android SDK目錄,還記得這個目錄嗎?
啟動eclipse,選擇Window > Preferences..
在彈出的Preferences對話框中左邊選擇Android標簽,右邊SDK location選擇你當初Android SDK的目錄即可。比如我到目錄是:/home/AAA/android-sdk-linux_x86(AAA這里是我的用戶名),然後單擊apply,再單擊ok即可。
在這個過程中會彈出一個對話框問你是否要參加google的滿意度調查報告。你可以選擇參加還是不參加。單擊process按鈕即可。
安裝好之後,你可以常用Help > Check for Updates選項來保持ADT保持最新。
6.添加Android操作系統和部件
到目前為止,基本配置都差不多了,但是為了開發android應用,還必須添加一個android操作系統,用於模擬器模擬你的應用程序。當然還有一些其他部件需要安裝。其實就是通過SDK 工具包中的Android SDK Manager來完成。當然在eclipse中可以直接啟動這個程序:Window > Android SDK Manager.
當然也可以直接運行sdk目錄下的tools目錄下的android腳本來啟動。
推薦的部件一般是:
SDK Tools,這個你安裝了sdk starter package實際上已經裝好了。
SDK Platform-tools,這個要裝。
SDK platform,這個至少需要一個。也就是操作系統,你可以下載多個,比如2.2,3.1你可以都下載,但是至少必須一個,因為模擬器運行的時候是必須要的。所以,如果你想各種平台都模擬測試一下,那麼你就需要各種版本的android都下載一個。
我下載了SDK Platform-tools和Android 2.3.3,Android 4.1,Extras幾個包。
下載完成之後,Android的開發環境就搭建好了。
7.對模擬器進行設置
選擇windows->Android Virtual Device Manager 點擊new,具體配置如圖.
完成後點擊start,虛擬機運行後,可將語言調整為中文簡體。
8.hello,android測試程序
啟動eclipse,選擇File->New->Project...,選擇android下Android Application Project.
Application name:Hello,Android 這是應用程序名字,也是程序運行的時候顯示在屏幕上方的文字,注意第一個字母要大寫。
project name:HelloAndroid 這是項目名稱,也就是包含文件的目錄名稱
Package Name:my.android 這個不用解釋,學過java的都應該知道,這是類的包名。
其它地方默認就可以了。
然後一路next,在Activity name處設置為:Helloandroidactivity(注意要求第一個字母大寫)就可以了。
完成後,在my.android下找到Helloandroidactivity.java,打開後,把裡面的onCreate方法的代碼更新如下:
import android.widget.TextView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, Android!=你好,安卓!");
setContentView(tv);
}
然後運行,等一段時間,會出現android虛擬機,並運行該程序。
『叄』 怎樣在Ubuntu下安裝Android SDK/ADB
Ubuntu電腦安裝Android SDK/ADB
第一步,你要下載Linux版Android SDK的安裝或文件包,然後你需要從Android SDK Manager內下載Platform Tools
Package
請從Google官方獲取Android
SDK安裝或文件包,通常情況,你下載的文件名為android-sdk_rxx-linux.tgz的形式,rxx代表版本,比如,r16版,即android-sdk_r16-linux.tgz,r24版,即android-sdk_r24-linux.tgz
請放置Android SDK安裝或文件包在你的用戶主目錄
在你的Ubuntu電腦上打開終端窗口
解壓Android SDK文件:
cd ~
tar -zxvf android-sdk_r16-linux.tgz
在~/android-sdk-linux/tools字目錄,有一個叫做android的可執行文件,盡管名字是android,但它實際上是Android
SDK Manager
運行Android SDK Manager:
./~/android-sdk-linux/tools/android
選擇Android SDK
Tools與Android SDK Platform-tools項,點Install
packages安裝Platform Tools
Package工具包。包括ADB與Fastboot可執行的文件在內的工具包都會被下載,由於下載的文件較多而需要一定的時間,你能去喝點東西
你下載的Platform Tools
Package工具包文件將位於新創建的~/android-sdk-linux/platform-tools目錄
第二步,修改ADB與Fastboot可執行文件的默認PATH路徑環境。PATH環境變數可以是在~/.profile(或~/.bash_profile)或者~/.bashrc文件內修改,~/.profile文件是讀取所有互動式Shell的登錄,~/.bashrc文件讀取所有非互動式Shell的登錄(如sftp),在大多數默認情況下,~/.profile文件導入所有~/.bashrc文件的設置。PATH命令設定的改變必須包括/android-sdk-linux/tools與/android-sdk-linux/platform-tools目錄
kevdog的PATH命令設定通過Ubuntu系統內初始的默認編輯器Gedit在~/.bashrc文件底部增加了一行:
export
PATH=${PATH}:${HOME}/android-sdk-linux/tools:${HOME}/android-sdk-linux/platform-tools
第三步,我們需要為Ubuntu創建udev設備管理規則,從而讓設備在通過USB埠連接到電腦時能被正確地識別
將設備連接到電腦,然後執行命令:
lsusb
你會看到類似於下面的輸出信息:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation
2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004
Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001:
ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 063: ID 04e8:6860
Samsung Electronics Co., Ltd
由於kevdog的設備是Samsung的某款設備,因此你能看到相應的識別信息:
Bus 001 Device 063: ID
04e8:6860 Samsung Electronics Co., Ltd
我們來解釋下上面的識別信息:
Bus 001 Device
063,設備端的名稱是/dev/bus/usb/001/063,即這個信息可以幫助我們確定設備端的名稱
04e8,vendorID,即供貨商編號
6860,proctID,即產品編號
使用設備端的名稱/dev/bus/usb/001/063可以讓我們查詢設備的屬性,查詢這些屬性有時很有必要,因為udev設備管理匹配設備是基於特定標準的。為此,我們需要一個正確的udev設備匹配規則集,這個過程的第一步就是查詢能被連接或插入到我們規則集的准則,這可以通過udevadm程序來實現,並且有兩種方式現,它們生成的輸出信息為我們的設備構建udev設備管理規則:
udevadm查詢udev設備管理規則方法1:
udevadm info -q all -n <name of device
node>
根據原作者的實際情況,設備端名稱是/dev/bus/usb/001/063,因此命令是:
udevadm info -q all -n /dev/bus/usb/001/063
你會看到類似於下面的輸出信息:
$ udevadm info -q all -n /dev/bus/usb/001/063
P:
/devices/pci0000:00/0000:00:1d.7/usb1/1-8
N: bus/usb/001/063
S:
libmtp-1-8
S: GalaxyNexus
E: UDEV_LOG=3
E:
DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb1/1-8
E: MAJOR=189
E:
MINOR=62
E: DEVNAME=/dev/bus/usb/001/063
E: DEVTYPE=usb_device
E:
DRIVER=usb
E: PRODUCT=4e8/6860/216
E: TYPE=0/0/0
E: BUSNUM=001
E: DEVNUM=063
E: SUBSYSTEM=usb
E: ID_MTP_DEVICE=1
E:
ID_MEDIA_PLAYER=samsung_galaxy-s2
E: ID_VENDOR=samsung
E:
ID_VENDOR_ENC=samsung
E: ID_VENDOR_ID=04e8
E: ID_MODEL=Galaxy
E:
ID_MODEL_ENC=Galaxy
E: ID_MODEL_ID=6860
E: ID_REVISION=0216
E:
ID_SERIAL=samsung_Galaxy_0146B06501005018
E:
ID_SERIAL_SHORT=0146B06501005018
E: ID_BUS=usb
E:
ID_USB_INTERFACES=:ffff00:ff4201:
E: DEVLINKS=/dev/libmtp-1-8
/dev/GalaxyNexus
E: TAGS=:udev-acl:
我們使用的規則從有E:(E=ENV=Device
Property設備屬性值)的行開始
udevadm查詢udev設備管理規則方法2:
udevadm info -a -p $(udevadm info -q path
-n <name of device node>)
根據原作者的實際情況,設備端名稱是/dev/bus/usb/001/063,因此命令是:
udevadm info -a -p
$(udevadm info -q path -n /dev/bus/usb/001/063)
你會看到類似於下面的輸出信息:
$ udevadm info -a -p $(udevadm info -q path -n /dev/bus/usb/001/063)
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found,
all possible attributes in the udev rules key format.
A rule to match, can
be composed by the attributes of the device
and the attributes from one
single parent device.
looking at device
'/devices/pci0000:00/0000:00:1d.7/usb1/1-8':
KERNEL=="1-8"
SUBSYSTEM=="usb"
DRIVER=="usb"
ATTR{configuration}==""
ATTR{bNumInterfaces}==" 2"
ATTR{bConfigurationValue}=="1"
ATTR{bmAttributes}=="80"
ATTR{bMaxPower}=="500mA"
ATTR{urbnum}=="29"
ATTR{idVendor}=="04e8"
ATTR{idProct}=="6860"
ATTR{bcdDevice}=="0216"
ATTR{bDeviceClass}=="00"
ATTR{bDeviceSubClass}=="00"
ATTR{bDeviceProtocol}=="00"
ATTR{bNumConfigurations}=="1"
ATTR{bMaxPacketSize0}=="64"
ATTR{speed}=="480"
ATTR{busnum}=="1"
ATTR{devnum}=="63"
ATTR{devpath}=="8"
ATTR{version}==" 2.00"
ATTR{maxchild}=="0"
ATTR{quirks}=="0x0"
ATTR{avoid_reset_quirk}=="0"
ATTR{authorized}=="1"
ATTR{manufacturer}=="samsung"
ATTR{proct}=="Galaxy"
ATTR{serial}=="0146B06501005018"
looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1':
KERNELS=="usb1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{configuration}==""
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bmAttributes}=="e0"
ATTRS{bMaxPower}==" 0mA"
ATTRS{urbnum}=="1403"
ATTRS{idVendor}=="1d6b"
ATTRS{idProct}=="0002"
ATTRS{bcdDevice}=="0300"
ATTRS{bDeviceClass}=="09"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bNumConfigurations}=="1"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{speed}=="480"
ATTRS{busnum}=="1"
ATTRS{devnum}=="1"
ATTRS{devpath}=="0"
ATTRS{version}==" 2.00"
ATTRS{maxchild}=="8"
ATTRS{quirks}=="0x0"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{authorized}=="1"
ATTRS{manufacturer}=="Linux 3.0.0-14-generic
ehci_hcd"
ATTRS{proct}=="EHCI Host Controller"
ATTRS{serial}=="0000:00:1d.7"
ATTRS{authorized_default}=="1"
looking at parent device '/devices/pci0000:00/0000:00:1d.7':
KERNELS=="0000:00:1d.7"
SUBSYSTEMS=="pci"
DRIVERS=="ehci_hcd"
ATTRS{vendor}=="0x8086"
ATTRS{device}=="0x27cc"
ATTRS{subsystem_vendor}=="0x103c"
ATTRS{subsystem_device}=="0x3010"
ATTRS{class}=="0x0c0320"
ATTRS{irq}=="20"
ATTRS{local_cpus}=="ff"
ATTRS{local_cpulist}=="0-7"
ATTRS{dma_mask_bits}=="32"
ATTRS{consistent_dma_mask_bits}=="32"
ATTRS{broken_parity_status}=="0"
ATTRS{msi_bus}==""
ATTRS{companion}==""
looking at
parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
我們使用的規則從有ATTRS(ATTRS=Device
Attributes設備屬性)的行開始
不管是ENV,還是ATTRS,我們可以構建一個udev設備管理規則集。規則集的名稱可以隨意,根據原作者的意圖,我們叫做51-android.rules:
你能這樣建立規則集文件:
gksu gedit /etc/udev/rules.d/51-android.rules
之後,請在規則集文件中加入相關的規則,以原作者的規則來看,注意是一行一個:
SUBSYSTEM=="usb",
ENV{ID_VENDOR_ID}=="04e8", ENV{ID_MODEL}=="Galaxy", MODE="0666",
SYMLINK+="GalaxyNexus"
SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="04e8",
ENV{ID_MODEL_ID}=="6860", MODE="0666", SYMLINK+="GalaxyNexus"
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProct}=="6860",
ATTR{proct}=="Galaxy" MODE="0666", SYMLINK+="GalaxyNexus"
如上面所加的規則,這些規則匹配准則是SUBSYSTEM,
ENV,ATTR,它只會修改設備的模式MODE(0666=rw-rw-rw-)與創建鏈接於/dev/GalaxyNexus的GalaxyNexus標識。當然,更多的指令可以分配給設備,如插入或移除設備時的執行命令,你能這樣指定指令:
ACTION=="add", RUN+="<name of action>"
ACTION==」remove」,
RUN+="<name of action>"
例如,我們要設定設備在插入或彈出時播放一個聲音或MP3文件,可以如下指令設定:
ACTION=="add", RUN+="/usr/local/bin/NexusMount.sh"
ACTION==」remove」, RUN+="/usr/local/bin/NexusUnmount.sh"
需要注意的是,每個ACTION指令設定必須在它自己的命令行;目錄必須正確;指令可以是多重設定
一旦規則構建完成,我們需要保存/etc/udev/rules.d/51-android.rules規則文件
在你執行規則集前,測試一下通常是一個好主意,因為那樣你能很容易地找出編寫規則集的錯誤:
你能使用udevadm工具簡單地完成規則集的測試:
udevadm info -q path -n d=<device
name>
根據原作者的設備端名/dev/bus/usb/001/063,測試行為:
udevadm test --action="SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="04e8",
ENV{ID_MODEL}=="Galaxy" MODE="0666", SYMLINK+="GalaxyNexus"" $(udevadm info -q
path -n /dev/bus/usb/001/063)
雖然測試輸出行相當長,兩行輸出信息正確地識別規則集的指令設定:
udev_rules_apply_to_event: MODE 0666
/etc/udev/rules.d/51-android.rules:1
udev_rules_apply_to_event: LINK
'GalaxyNexus' /etc/udev/rules.d/51-android.rules:1
一旦你確認了規則集正確,請重啟udev設備管理服務:
sudo service udev restart
第四步,退出電腦的登錄,然後重新登錄回
在設備插入的情況下,執行ADB命令,如確認設備連接:
$ adb devices
你會看到設備識別號信息,根據原作者的設備,它是
0146B06501005018 device
如果你的設備已啟動在Fastboot模式,許多設備不啟動可能也行,你能執行Fastboot命令,如標準的Fastboot設備:
$
fastboot devices