Ⅰ 如何快速地安裝Ubuntu SDK
1)安裝Ubuntu SDK
首先,我們可以安裝好我們的Ubuntu桌面系統.我們一般推薦安裝最新的Ubuntu桌面系統,比如目前即將面世的16.04 LTS版本.如果已經有一個Ubuntu桌面系統,我們可以它通過如下的命令來升級我們的桌面系統到最新的系統:
[html] view plain
$ update-manager -d
依照現有的文章"Ubuntu SDK 安裝"中介紹的那樣,安裝最新的Ubuntu SDK.
[html] view plain
$sudo apt-get update
$sudo apt-get upgrade
$sudo apt-get dist-upgrade
$sudo add-apt-repository ppa:ubuntu-sdk-team/ppa
$sudo apt-get install ubuntu-sdk
$sudo apt-get install ubuntu-sdk-dev ubuntu-sdk-ide
$sudo apt update && sudo apt dist-upgrade
在上面的先開始的命令中,我們先把我們的Ubuntu桌面系統更新到最新的狀態,這樣使得我們的最新的SDK依賴的包都被安裝到系統中以使得後面的SDK的安裝能夠順利進行.否側在我們的實際安裝中,如果有的包不在系統中或是最新的,那麼後面SDK的安裝可能失敗.
在這個步驟中,由於我們使用了ppa,所有它可以支持斷點續傳.如果失敗了,它可以在下次安裝時再次從上次中斷的地方繼續下載安裝.一般來說我們並不擔心這一步的失敗.對於有些開發者來說,可以嘗試使用VPN的方法來提高安裝的速度.成功安裝後,我們可以在dash中找到我們所需要的Ubuntu SDK
對於網路情況不是很好的開發者來說,請直接跳到下面的第三節下載已經成功安裝過的chroots來安裝而不需要下面的第二步.
2)安裝chroots
在這個步驟中,由於它不支持斷點續傳,所有它是最容易導致安裝失敗的環節.如果我們的網路情況好的話,我們可以直接在我們的命令行中打入下面的命令來安裝我們的chroots.在這個步驟中,我們可以來安裝我們所需要版本的chroots.我們可以通過如下的方式找到我們手機所有支持的framework:
[html] view plain
liuxg@liuxg:~$ adb shell
phablet@ubuntu-phablet:~$ click framework list
一般來說在我們開發時,會選擇我們所需要的framework(相當於iOS的版本).如果我們所定義的framework在手機中不存在,那麼我的應用在手機中將不能被運行.目前我們建議使用15.04的chroots.
- armhf chroot的安裝
我們可以通過如下的命令來安裝我們的armhf chroot:
[html] view plain
$sudo click chroot -aarmhf -f ubuntu-sdk-15.04 create
如果安裝失敗,我們必須使用如下的命令刪除已經安裝的半成品,然後再用上面的命令來安裝我們的chroot.
[html] view plain
$sudo click chroot -a armhf -f ubuntu-sdk-15.04 destroy
- i386 chroot的安裝
我們可以通過如下的命令來安裝我們的armhf chroot:
[html] view plain
$sudo click chroot -ai386 -f ubuntu-sdk-15.04 create
如果安裝失敗,我們必須使用如下的命令刪除已經安裝的半成品,然後再用上面的命令來安裝我們的chroot.
[html] view plain
$sudo click chroot -a i386 -f ubuntu-sdk-15.04 destroy
3)直接下載已有的chroots進行安裝
在實際的安裝中,我發現有很多的開發者在進行上面的安裝時由於網路的原因而導致上面的安裝不能成功.基於這個原因,我們把我已經成功安裝過的chroots上傳到我們的網路網盤供大家下載.等下載完後,我們再把它們解壓到我們所需要的路徑中.這樣的安裝好處是,我們可以使用各種方法進行斷點下載我們打包過的chroots,並成功拷貝到相應的目錄中.這個方法的缺點是:chroots可能不是最新的.開發者在以後的SDK中可以進行自動更新或手動更新我們的chroots.不過一般來說,這個chroots已經夠用即使在不更新的情況下.
刪除任何已經安裝或安裝不成功的chroots
我們可以通過上一節中介紹的方法來刪除曾經沒有安裝成功的chroots以保證我們有干凈的安裝環境:
[html] view plain
$sudo click chroot -a armhf -f ubuntu-sdk-15.04 destroy
$sudo click chroot -a i386 -f ubuntu-sdk-15.04 destroy
通過上面的方法,我們確保在我們的桌面系統中沒有任何我們曾經安裝失敗後殘存的chroots文件.
下載我們上傳的chroots
開發者可以到我們的網址下載我們已經上傳的chroots.這個chroots是到上傳時間最新的chroot.對於絕大多數的應用開發應該是沒有任何問題的.當然開發者可以在以後的SDK中進行更新.
就如同我們上面顯示的那樣.在我們上次的chroots中,有兩部分文件.
- chroot.d:
這個是需要安裝到/etc/schroot/chroot.d目錄中的文件.安裝後的文件架構是:
[html] view plain
liuxg@liuxg:/etc/schroot/chroot.d$ tree
.
├── click-ubuntu-sdk-15.04-armhf
└── click-ubuntu-sdk-15.04-i386
在實際的拷貝中,我們需要使用sudo來拷貝的方法這兩個文件.這里的liuxg是我自己的電腦liuxg上用戶名.在你們自己安裝時,這個名字應該是你們自己的用戶名.打開這個兩個文件,同樣我們需要使用sudo來編輯這兩個文件,比如click-ubuntu-sdk-15.04-armhf:
[html] view plain
[click-ubuntu-sdk-15.04-armhf]
description=Build chroot for click packages on armhf
users=root,liuxg
root-users=root,liuxg
source-root-users=root,liuxg
type=directory
profile=default
setup.fstab=click/fstab
# Not protocols or services see
# debian bug 557730
setup.nssdatabases=sbuild/nssdatabases
union-type=overlayfs
directory=/var/lib/schroot/chroots/click-ubuntu-sdk-15.04-armhf
我們可以使用vi或gedit來編輯上面的文件.替換上面的"liuxg"為自己電腦上的用戶名.然後存下來.我們使用同樣的方法來對click-ubuntu-sdk-15.04-i386進行同樣的操作.
- chroots.tar.gz
我們把這個文件拷貝到/var/lib/schroot/目錄,然後我們通過如下的方法來解壓縮:
[html] view plain
liuxg@liuxg:/var/lib/schroot/chroots$ sudo tar -xvf chroots.tar.gz
解葯縮後的文件架構為:
[html] view plain
liuxg@liuxg:/var/lib/schroot/chroots$ tree -L 1
.
├── click-ubuntu-sdk-15.04-armhf
└── click-ubuntu-sdk-15.04-i386
同樣上面的"liuxg"是我自己的用戶名.在實際應用中,它應該是你自己電腦上的用戶名.
- 檢查我們已經安裝好的chroots
我們可以通過如下的方法來檢查我們的chroots的安裝是否已經成功:
[html] view plain
liuxg@liuxg:~$ schroot -l
chroot:click-ubuntu-sdk-15.04-armhf
chroot:click-ubuntu-sdk-15.04-i386
source:click-ubuntu-sdk-15.04-armhf
source:click-ubuntu-sdk-15.04-i386
如果我們已經看到上面的顯示,表明我們的安裝已經是成功的.
- 打開我們的Ubuntu SDK來檢查我們的chroots
在SDK中,我們怎麼來檢查我們已經安裝過的chroots是否已經成功呢?我們首先打開我們的SDK,然後點擊菜單:
Tools ==> Options ==> Ubuntu ==>Click
如果我們已經看到我們的chroot已經在上面所示的圖片中,表明我們的chroot是已經安裝成功的.我們可以點擊上面的Update來更新我們的chroots到最新狀態.當然我們也可以點擊Maintain來添加或刪除我們所需要的模塊或庫.
4)最後一招
如果上面的所有方法都已經試過了,還是不可以的話,可以在地址下載debian文件進行安裝.需要安裝的文件在頁面的最下面.目前使用於16.04 LTS的desktop系統.
ubuntu-sdk-api-15.04-armhf_15.04-20160122~0ubuntu1~0xenial1_amd64.deb (573.6 MiB)
ubuntu-sdk-api-15.04-i386_15.04-20160122~0ubuntu1~0xenial1_amd64.deb (448.8 MiB)
ubuntu-sdk-api-tools_15.04-20160122~0ubuntu1~0xenial1_all.deb (10.9 KiB)
如果大家還是有困難下載上面的文件,我們已經把它們放到我們的網路雲上面了.請在網路雲盤里下載.在安裝我們上面的文件時,我們必須按照上面的方法先刪除我們先前安裝過的文件。我們可以使用如下的命令:
[html] view plain
$sudo click chroot -a armhf -f ubuntu-sdk-15.04 destroy
$sudo click chroot -a i386 -f ubuntu-sdk-15.04 destroy
然後通過如下的命令:
[html] view plain
$ sudo dpkg -i ubuntu-sdk-api-15.04-i386_15.04-20160122-0ubuntu1-0xenial1_amd64
$ sudo dpkg -i ubuntu-sdk-api-tools_15.04-20160122-0ubuntu1-0xenial1_all.deb
$ sudo dpkg -i ubuntu-sdk-api-15.04-armhf_15.04-20160122-0ubuntu1-0xenial1_amd64.deb
當然,我們也可以直接通過點擊已經下載的.deb文件,並通過系統的"Ubuntu Software"應用來幫我們進行安裝.等安裝完後,我們也可以通過命令行來查看是否已經安裝好了:
[html] view plain
$ schroot -l
我們也可以在我們的SDK的界面中進行更新的操作.當然這依賴於我們的網路速度:)
Ⅱ 解決Ubuntu下adb無法識別android手機的問題
在Ubuntu下進行Android開發的時候會遇到手機無法識別的問題,手機插上後執行 adb root 會顯示沒有許可權:
遇到這種情況需要在Ubuntu設置下。根據以下步驟進行設置後會解決這個問題,我所使用的開發環境是Ubuntu16.04。
1. 首先插上手機,終端執行 lsusb ,這樣便可以查看當前連接電腦的設備
可以發現,插入的手機的VendorID是 18d1 , ProctID是 9025 。
如果不能知道哪個是插入的手機,可以拔掉手機後再執行一次 lsusb ,這樣對比兩次顯示的結果就可以找到插入的手機。
2. 終端執行如下命令
53-android.rules文件可能不存在,那就創建。
注意,這個53-android.rules 文件名字應該是隨意命名的,好像數字50,51,52,53等等都可以,我只驗證過50和53。
3. 增加如下內容到53-android.rules
注意, SUBSYSTEM=="usb", SYSFS{idVendor}=="**18d1**", MODE="0666" 這句是給 ubuntu 7.01 以後的系統識別用的.
而 SUBSYSTEM=="usb_device", SYSFS{idVendor}=="**18d1**", MODE=="0666" 是給 Ubuntu 7.01之前的系統識別用的,相當於系統兼容。
4. 接著運行如下命令
注意, sudo /etc/init.d/udev restart 也可以為 sudo service udev restart //or restart udev
5. 在android sdk的tools目錄下運行(這一步很重要,必須要sudo,否則沒效果)
到這一步了,正常情況下應該會有設備顯示出來。但結果發現 List of devices attached 下面沒有設備出現,這就意味著 adb不識別新的USB 設備,糾結了。
6. 如果跟我一樣悲慘,請執行如下操作
注意,如果沒有 .android 和 adb_usb.ini ,可以自己新建。
另外如果有 adb_usb.ini ,它的內容一般如下:
7. 在 adb_usb.ini 中添加前面獲得的VendorID內容
注意,要加十六進制符號 0x
8. 保存,關閉,執行如下命令
此時,List of devices attached 下面會有設備出現了。
至此,結束。
Ⅲ 如何快速地安裝Ubuntu SDK
1)安裝Ubuntu SDK
首先,我們可以安裝好我們的Ubuntu桌面系統.我們一般推薦安裝最新的Ubuntu桌面系統,比如目前即將面世的16.04 LTS版本.如果已經有一個Ubuntu桌面系統,我們可以它通過如下的命令來升級我們的桌面系統到最新的系統:
[html] view plain
$ update-manager -d
依照現有的文章"Ubuntu SDK 安裝"中介紹的那樣,安裝最新的Ubuntu SDK.
[html] view plain
$sudo apt-get update
$sudo apt-get upgrade
$sudo apt-get dist-upgrade
$sudo add-apt-repository ppa:ubuntu-sdk-team/ppa
$sudo apt-get install ubuntu-sdk
$sudo apt-get install ubuntu-sdk-dev ubuntu-sdk-ide
$sudo apt update && sudo apt dist-upgrade
在上面的先開始的命令中,我們先把我們的Ubuntu桌面系統更新到最新的狀態,這樣使得我們的最新的SDK依賴的包都被安裝到系統中以使得後面的SDK的安裝能夠順利進行.否側在我們的實際安裝中,如果有的包不在系統中或是最新的,那麼後面SDK的安裝可能失敗.
在這個步驟中,由於我們使用了ppa,所有它可以支持斷點續傳.如果失敗了,它可以在下次安裝時再次從上次中斷的地方繼續下載安裝.一般來說我們並不擔心這一步的失敗.對於有些開發者來說,可以嘗試使用VPN的方法來提高安裝的速度.成功安裝後,我們可以在dash中找到我們所需要的Ubuntu SDK:
對於網路情況不是很好的開發者來說,請直接跳到下面的第三節下載已經成功安裝過的chroots來安裝而不需要下面的第二步.
2)安裝chroots
在這個步驟中,由於它不支持斷點續傳,所有它是最容易導致安裝失敗的環節.如果我們的網路情況好的話,我們可以直接在我們的命令行中打入下面的命令來安裝我們的chroots.在這個步驟中,我們可以來安裝我們所需要版本的chroots.我們可以通過如下的方式找到我們手機所有支持的framework:
[html] view plain
liuxg@liuxg:~$ adb shell
phablet@ubuntu-phablet:~$ click framework list
一般來說在我們開發時,會選擇我們所需要的framework(相當於iOS的版本).如果我們所定義的framework在手機中不存在,那麼我的應用在手機中將不能被運行.目前我們建議使用15.04的chroots.
- armhf chroot的安裝
我們可以通過如下的命令來安裝我們的armhf chroot:
[html] view plain
$sudo click chroot -aarmhf -f ubuntu-sdk-15.04 create
如果安裝失敗,我們必須使用如下的命令刪除已經安裝的半成品,然後再用上面的命令來安裝我們的chroot.
[html] view plain
$sudo click chroot -a armhf -f ubuntu-sdk-15.04 destroy
- i386 chroot的安裝
我們可以通過如下的命令來安裝我們的armhf chroot:
[html] view plain
$sudo click chroot -ai386 -f ubuntu-sdk-15.04 create
如果安裝失敗,我們必須使用如下的命令刪除已經安裝的半成品,然後再用上面的命令來安裝我們的chroot.
[html] view plain
$sudo click chroot -a i386 -f ubuntu-sdk-15.04 destroy
3)直接下載已有的chroots進行安裝
在實際的安裝中,我發現有很多的開發者在進行上面的安裝時由於網路的原因而導致上面的安裝不能成功.基於這個原因,我們把我已經成功安裝過的chroots上傳到我們的網路網盤供大家下載.等下載完後,我們再把它們解壓到我們所需要的路徑中.這樣的安裝好處是,我們可以使用各種方法進行斷點下載我們打包過的chroots,並成功拷貝到相應的目錄中.這個方法的缺點是:chroots可能不是最新的.開發者在以後的SDK中可以進行自動更新或手動更新我們的chroots.不過一般來說,這個chroots已經夠用即使在不更新的情況下.
刪除任何已經安裝或安裝不成功的chroots
我們可以通過上一節中介紹的方法來刪除曾經沒有安裝成功的chroots以保證我們有干凈的安裝環境:
[html] view plain
$sudo click chroot -a armhf -f ubuntu-sdk-15.04 destroy
$sudo click chroot -a i386 -f ubuntu-sdk-15.04 destroy
通過上面的方法,我們確保在我們的桌面系統中沒有任何我們曾經安裝失敗後殘存的chroots文件.
下載我們上傳的chroots
開發者可以到我們的網址下載我們已經上傳的chroots.這個chroots是到上傳時間最新的chroot.對於絕大多數的應用開發應該是沒有任何問題的.當然開發者可以在以後的SDK中進行更新.
就如同我們上面顯示的那樣.在我們上次的chroots中,有兩部分文件.
- chroot.d:
這個是需要安裝到/etc/schroot/chroot.d目錄中的文件.安裝後的文件架構是:
[html] view plain
liuxg@liuxg:/etc/schroot/chroot.d$ tree
.
├── click-ubuntu-sdk-15.04-armhf
└── click-ubuntu-sdk-15.04-i386
在實際的拷貝中,我們需要使用sudo來拷貝的方法這兩個文件.這里的liuxg是我自己的電腦liuxg上用戶名.在你們自己安裝時,這個名字應該是你們自己的用戶名.打開這個兩個文件,同樣我們需要使用sudo來編輯這兩個文件,比如click-ubuntu-sdk-15.04-armhf:
[html] view plain
[click-ubuntu-sdk-15.04-armhf]
description=Build chroot for click packages on armhf
users=root,liuxg
root-users=root,liuxg
source-root-users=root,liuxg
type=directory
profile=default
setup.fstab=click/fstab
# Not protocols or services see
# debian bug 557730
setup.nssdatabases=sbuild/nssdatabases
union-type=overlayfs
directory=/var/lib/schroot/chroots/click-ubuntu-sdk-15.04-armhf
我們可以使用vi或gedit來編輯上面的文件.替換上面的"liuxg"為自己電腦上的用戶名.然後存下來.我們使用同樣的方法來對click-ubuntu-sdk-15.04-i386進行同樣的操作.
- chroots.tar.gz
我們把這個文件拷貝到/var/lib/schroot/目錄,然後我們通過如下的方法來解壓縮:
[html] view plain
liuxg@liuxg:/var/lib/schroot/chroots$ sudo tar -xvf chroots.tar.gz
解葯縮後的文件架構為:
[html] view plain
liuxg@liuxg:/var/lib/schroot/chroots$ tree -L 1
.
├── click-ubuntu-sdk-15.04-armhf
└── click-ubuntu-sdk-15.04-i386
同樣上面的"liuxg"是我自己的用戶名.在實際應用中,它應該是你自己電腦上的用戶名.
- 檢查我們已經安裝好的chroots
我們可以通過如下的方法來檢查我們的chroots的安裝是否已經成功:
[html] view plain
liuxg@liuxg:~$ schroot -l
chroot:click-ubuntu-sdk-15.04-armhf
chroot:click-ubuntu-sdk-15.04-i386
source:click-ubuntu-sdk-15.04-armhf
source:click-ubuntu-sdk-15.04-i386
如果我們已經看到上面的顯示,表明我們的安裝已經是成功的.
- 打開我們的Ubuntu SDK來檢查我們的chroots
在SDK中,我們怎麼來檢查我們已經安裝過的chroots是否已經成功呢?我們首先打開我們的SDK,然後點擊菜單:
Tools ==> Options ==> Ubuntu ==>Click
如果我們已經看到我們的chroot已經在上面所示的圖片中,表明我們的chroot是已經安裝成功的.我們可以點擊上面的Update來更新我們的chroots到最新狀態.當然我們也可以點擊Maintain來添加或刪除我們所需要的模塊或庫.
4)最後一招
如果上面的所有方法都已經試過了,還是不可以的話,可以在地址下載debian文件進行安裝.需要安裝的文件在頁面的最下面.目前使用於16.04 LTS的desktop系統.
ubuntu-sdk-api-15.04-armhf_15.04-20160122~0ubuntu1~0xenial1_amd64.deb (573.6 MiB)
ubuntu-sdk-api-15.04-i386_15.04-20160122~0ubuntu1~0xenial1_amd64.deb (448.8 MiB)
ubuntu-sdk-api-tools_15.04-20160122~0ubuntu1~0xenial1_all.deb (10.9 KiB)
如果大家還是有困難下載上面的文件,我們已經把它們放到我們的網路雲上面了.請在網路雲盤里下載.在安裝我們上面的文件時,我們必須按照上面的方法先刪除我們先前安裝過的文件。我們可以使用如下的命令:
[html] view plain
$sudo click chroot -a armhf -f ubuntu-sdk-15.04 destroy
$sudo click chroot -a i386 -f ubuntu-sdk-15.04 destroy
然後通過如下的命令:
[html] view plain
$ sudo dpkg -i ubuntu-sdk-api-15.04-i386_15.04-20160122-0ubuntu1-0xenial1_amd64
$ sudo dpkg -i ubuntu-sdk-api-tools_15.04-20160122-0ubuntu1-0xenial1_all.deb
$ sudo dpkg -i ubuntu-sdk-api-15.04-armhf_15.04-20160122-0ubuntu1-0xenial1_amd64.deb
當然,也可以直接通過點擊已經下載的.deb文件,並通過系統的"Ubuntu Software"應用來幫我們進行安裝.等安裝完後,我們也可以通過命令行來查看是否已經安裝好了:
[html] view plain
$ schroot -l
也可以在我們的SDK的界面中進行更新的操作.當然這依賴於我們的網路速度:)
- 檢驗我們已經安裝的Ubuntu SDK
創建第一個Ubuntu for phone應用"來檢查我們的SDK的安裝是否成功.如果一切順利,可以把我們的應用部署到我們的設備或模擬器中.