當前位置:首頁 » 安卓系統 » android編譯sdk

android編譯sdk

發布時間: 2022-08-09 00:50:07

① 創建一個Android應用程序時,需要明確目標版本和編譯版本,不需要最小版本

摘要 compiledSdkVersion: 編譯SDK版本是將要編譯APP的平台版本. 默認情況下它應該設置為SDK中最新的Android可用版本. 我們依然可以編譯APP來支持更早的版本, 但是設置它為最新版本讓我們可以使用新功能並優化APP使其在最新版本上擁有更好的用戶體驗.

② android sdk多個版本 編譯用哪個

永遠只用最新的SDK版本,這是Google官方強烈建議的。開發者的app能運行的Android版本不是由SDK決定的,是由每一個項目的minSDK決定的。SDK都是向下兼容的。SDK在不斷改進中,新的SDK會提供更強大開發工具,而且用4.0的SDK編譯的2.1的apk的執行效率會比用2.1的SDK編譯的更高。
至於每個app應該用什麼minSDK ,應該根據應用具體的API來,如果app沒有用到1.6以上SDK新提供的API,那麼用1.6會在提供相同體驗下反而會比2.1兼容更多機型.

附谷歌原版建議:
In order to provide the best user experience on the latest devices, we recommend that you use the latest platform version as your build target. You'll still be able to run your app on older versions, but you must build against the latest version in order to use new features when running on devices with the latest version of Android.To get started, download the latest Android version, plus the lowest version you plan to support (we recommend Android 2.2 for your lowest version).

③ android sdk怎麼開發

編譯自己的SDK
特種設備會有一些額外的功能,這樣就需要給應用層提供特定的API,從而需要定製自己的SDK。
編譯自己的sdk還是很簡單的,因為google幫我們做好基礎工作,步驟如下:
$ source build/envsetup.sh
$launch 'what you want'
$ make update-api
$ make PRODUCT-sdk-sdk -j81234

如果一切順利的編譯完成,那麼恭喜你。如果遇到錯誤也不要緊,因為這是正常的。下面列出我遇到的主要錯誤:tools/base沒有。
error1:
sdk/eclipse/scripts/create_all_symlinks.sh: line 285: cd: tools/base: No such file or directory
...
sdk/eclipse/scripts/create_all_symlinks.sh: line 285: cd: tools/base: No such file or directory
...
sdk/eclipse/scripts/create_all_symlinks.sh: line 47: cd: tools/base: No such file or directory
make: *** [out/host/linux-x86/obj/EXECUTABLES/monitor_intermediates/monitor] Error 1123456

modify create_all_symlinks.sh
將文件中所有需要tools/base的地方都注釋掉。
error2:
sdk/build/tools.atree:124: couldn't locate source file: tools/base/templates/projects
sdk/build/tools.atree:125: couldn't locate source file: tools/base/templates/activities
sdk/build/tools.atree:126: couldn't locate source file: tools/base/templates/gradle
sdk/build/tools.atree:127: couldn't locate source file: tools/base/templates/other
make: *** [out/host/linux-x86/sdk/android-sdk_eng.linc_linux-x86.zip] Error 4412345

modify tools.atree
$ vim sdk/build/tools.atree1
# Templates
#tools/base/templates/projects tools/templates/projects
#tools/base/templates/activities tools/templates/activities
#tools/base/templates/gradle tools/templates/gradle
#tools/base/templates/other tools/templates/other
123456

再次修改後就離成功不遠了,下面是成功的log。
Package SDK: out/host/linux-x86/sdk/android-sdk_eng.linc_linux-x86.zip
SDK: warning: including GNU target out/target/proct/generic/system/lib/libgccdemangle.so
123

使用SDK
將android-sdk_eng.linc_linux-x86.zip解壓到你喜歡的目錄,在Android Studio的設置如下:
File—>Project Structure—>SDK Location,填寫你剛剛解壓的目錄即可。
試著用自定義的API做測試吧,good luck!
參考:
http://blog.csdn.net/edsam49/article/details/44996353#reply

④ 在編譯android SDK (Amlogic) 的時候出現的一個錯誤,求指點.

你不是「make clean,make mrporper,都試過了 好像都沒用」嗎,後來改了哪裡呢?有沒有改到arm-none-linux-gnueabi-?

⑤ android 如何製作自己的sdk

其實製作sdk很簡單,就是把你編譯好的java生成的class打成jar包,如果要使用activity的話,就是要在嵌入sdk的項目中的androidManifest.xml中注冊jar包中的activity就可以正常跳轉了。

⑥ eclipse android sdk怎麼編譯

還是推薦使用Android Studio,畢竟是谷歌的親兒子,開發Android會事半功倍的。

⑦ 如何編譯android sdk

如果沒有真正開發板,又想深入到android
framework里,或kernel里的話,就只能用android
的emulator了。
但是我們下載的android
SDK沒有源代碼,我們沒辦法跟蹤修改framework和kernel里的東西。
所以有了想嘗試自己從頭生成SDK的想法。
1.
首先下載編譯android所有source
code.
具體步驟這里不再贅述,參考ht
tp:/
/source.and
roid.c
om/download
cd
mydroid
repo
init
-u
git://android.git.kernel.org/platform/manifest.git
repo
sync
一點小提示:
有時候google的android伺服器老是斷,總不能讓我們守在電腦旁邊一直手工重新repo
sync吧,這可是需要N個小時才能下載完的啊。
我們就寫個小腳本讓電腦自動repo
sync,直到下載成功為止:
#!/bin/sh
count=0
ret=1
while
[
$ret
-ne
0
]
do
repo
sync
ret=$?
count=$((
$count
+
1))
echo
"try
$count,
ret:
$ret"
done
echo
"try
$count,
ret:
$ret"
把上面的內容復制到一個文件里tryrepo.sh
然後修改tryrepo.sh的屬性,開始自動工作吧。第二點早上應該就大功告成了
chmod
a+x
tryrepo.sh
./tryrepo.sh
2.
編譯android,
生成SDK
make
sdk
漫長的等待之後,SDK生成了,在目錄:mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\platforms\
在linux下面可以直接運行mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\tools\android
就可以看到熟悉的android
emulator啟動界面。
如果想在windows
XP下使用這個SDK和emulator,
最簡單的方法是:
(1)自己下載一個最新的windows版本的android
2.0
SDK。
(2)把mydroid\out\host\linux-x86\sdk\android-sdk_eng.yanbin_linux-x86\platforms\下的東西復制到windows版SDK的platforms下。
(3)
然後把platforms下android-2.0下tools目錄下的幾個.exe文件復制到自己編譯的SDK目錄下的tools目錄下。

⑧ 編譯android 源碼需要sdk環境嗎

下面是android學習手冊,可以查看編譯源碼,360手機助手中下載,

編譯環境:ubuntu9.10,widnows平台目前不被支持。

1)安裝必要的軟體環境

$ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev

官方推薦的就是上面這些,如果在編譯過程中發現某些命令找不到,就apt-get它。可能需要的包還有:

$ sudo apt-get install make
$ sudo apt-get install gcc
$ sudo apt-get install g++
$ sudo apt-get install libc6-dev

$ sudo apt-get install patch
$ sudo apt-get install texinfo

$ sudo apt-get install zlib1g-dev
$ sudo apt-get install valgrind
$ sudo apt-get install python2.5(或者更高版本)

需要注意的是,官方文檔說如果用sun-java6-jdk可出問題,得要用sun-java5- jdk。經測試發現,如果僅僅make(make不包括make sdk),用sun-java6-jdk是沒有問題的。而make sdk,就會有問題,嚴格來說是在make doc出問題,它需要的javadoc版本為1.5。

因此,我們安裝完sun-java6-jdk後最好再安裝sun-java5-jdk,或者只安裝sun-java5-jdk。這里sun-java6-jdk和sun-java5-jdk都安裝,並只修改javadoc.1.gz和javadoc。因為只有這兩個是make sdk用到的。這樣的話,除了javadoc工具是用1.5版本,其它均用1.6版本:

$ sudo apt-get install sun-java6-jdk

修改javadoc的link:

$ cd /etc/alternatives
$ sudo rm javadoc.1.gz
$ sudo ln -s /usr/lib/jvm/java-1.5.0-sun/man/man1/javadoc.1.gz javadoc.1.gz
$ sudo rm javadoc
$ sudo ln -s /usr/lib/jvm/java-1.5.0-sun/bin/javadoc javadoc

2)設置環境變數

$ emacs ~/.bashrc

在.bashrc中新增或整合PATH變數,如下:

#java 程序開發/運行的一些環境變數

JAVA_HOME=/usr/lib/jvm/java-6-sun
JRE_HOME=${JAVA_HOME}/jre
export ANDROID_JAVA_HOME=$JAVA_HOME
export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export JAVA_HOME;
export JRE_HOME;
export CLASSPATH;
HOME_BIN=~/bin/
export PATH=${PATH}:${JAVA_PATH}:${HOME_BIN};

保存後,同步更新:

source ~/.bashrc

3)安裝repo(用來更新android源碼)

創建~/bin目錄,用來存放repo程序,如下:

$ cd ~
$ mkdir bin

並加到環境變數PATH中,在第2步中已經加入。

下載repo腳本並使其可執行:

$ curlhttp://android.git.kernel.org/repo>~/bin/repo
$ chmod a+x ~/bin/repo

4)初始化repo

repo是android對git的一個封裝,簡化了一些git的操作。

創建工程目錄:

$ mkdir android
$ cd android

repo初始化:

$ repo init -u git://android.git.kernel.org/platform/manifest.git

在此過程中需要輸入名字和email地址。初始化成功後,會顯示:

repo initialized in /android

在~/android下會有一個.repo的隱藏目錄。

5)同步源代碼

$ repo sync

這一步要很久很久。

6)編譯android源碼,並得到~/android/out目錄

$ cd ~/andoird
$ make

這一過程很久。

7)在模擬器上運行編譯好的android

編譯好android之後,emulator在~/android/out/host/linux-x86/bin下,ramdisk.img,system.img和userdata.img則在~/android/out/target/proct/generic下。

$ cd ~/android/out/host/linux-x86/bin

增加環境變數

$ emacs ~/.bashrc

在.bashrc中新增環境變數,如下

#java 程序開發/運行的一些環境變數

export ANDROID_PRODUCT_OUT=~/android/out/target/proct/generic
ANDROID_PRODUCT_OUT_BIN=~/android/out/host/linux-x86/bin
export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT};

最後,同步這些變化:

$ source ~/.bashrc
$ cd ~/android/out/target/proct/generic
$ emulator -system system.img -data userdata.img -ramdisk ramdisk.img

最後進入android桌面,就說明成功了。

8)編譯模塊

android中的一個應用程序可以單獨編譯,編譯後要重新生成system.img。

在源碼目錄下執行

$ . build/envsetup.sh (.後面有空格)

就多出一些命令:

- croot: Changes directory to the top of the tree.
- m: Makes from the top of the tree.
- mm: Builds all of the moles in the current directory.
- mmm: Builds all of the moles in the supplied directories.
- cgrep: Greps on all local C/C++ files.
- jgrep: Greps on all local Java files.
- resgrep: Greps on all local res/*.xml files.
- godir: Go to the directory containing a file.

可以加—help查看用法。

我們可以使用mmm來編譯指定目錄的模塊,如編譯聯系人:

$ mmm packages/apps/Contacts/

編完之後生成兩個文件:

out/target/proct/generic/data/app/ContactsTests.apk
out/target/proct/generic/system/app/Contacts.apk

可以使用

$ make snod

重新生成system.img,再運行模擬器。

9)編譯SDK

直接執行make是不包括make sdk的。make sdk用來生成SDK,這樣,我們就可以用與源碼同步的SDK來開發android了。

a)修改/frameworks/base/include/utils/Asset.h

『UNCOMPRESS_DATA_MAX = 1 * 1024 * 1024』 改為 『UNCOMPRESS_DATA_MAX = 2 * 1024 * 1024』

原因是eclipse編譯工程需要大於1.3M的buffer;

b)編譯ADT

由於本人不使用eclipse,所以沒有進行這步;

c)執行make sdk

注意,這里需要的javadoc版本為1.5,所以你需要在步驟1中同時安裝sun-java5-jdk

$ make sdk

編譯很慢。編譯後生成的SDK存放在out/host/linux-x86/sdk/,此目錄下有android-sdk_eng.xxx_linux- x86.zip和android-sdk_eng.xxx_linux-x86目錄。android-sdk_eng.xxx_linux-x86就是 SDK目錄。

實際上,當用mmm命令編譯模塊時,一樣會把SDK的輸出文件清除,因此,最好把android-sdk_eng.xxx_linux-x86移出來。

此後的應用開發,就在該SDK上進行,所以把7)對於~/.bashrc的修改注釋掉,增加如下一行:

export PATH=${PATH}:~/android/out/host/linux-x86/sdk/android-sdk_eng.xxx_linux-x86/tools

注意要把xxx換成真實的路徑;

d)關於環境變數、android工具的選擇

目前的android工具有:

A、我們從網上下載的Android SDK,如果你下載過的話( tools下有許多android工具,lib/images下有img映像)
B、我們用make sdk編譯出來的SDK( tools下也有許多android工具,lib/images下有img映像)
C、我們用make編譯出來的out目錄( tools下也有許多android工具,lib/images下有img映像)

那麼我們應該用那些工具和img呢?

首先,我們一般不會用A選項的工具和img,因為一般來說它比較舊,也源碼不同步。其次,也不會用C選項的工具和img,因為這些工具和img沒有經過SDK的歸類處理,會有工具和配置找不到的情況;事實上,make sdk產生的很多工具和img,在make編譯出來out目錄的時候,已經編譯產生了,make sdk只是做了而已。

e)安裝、配置ADT
略過;

f)創建Android Virtual Device

編譯出來的SDK是沒有AVD(Android Virtual Device)的,我們可以通過android工具查看:

$ android list

創建AVD:

$ android create avd -t 1 -n myavd

可以android –help來查看上面命令選項的用法。創建中有一些選項,默認就行了。

再執行android list,可以看到AVD存放的位置。

以後每次運行emulator都要加-avd myavd或@myavd選項:

$ emulator -avd myavd

10)編譯linux內核映像

a)准備交叉編譯工具鏈

android代碼樹中有一個prebuilt項目,包含了我們編譯內核所需的交叉編譯工具。

b)設定環境變數

$ emacs ~/.bashrc

增加如下兩行:

export PATH=$PATH:~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin
export ARCH=arm

保存後,同步變化:

$ source ~/.bashrc

c)獲得合適的內核源代碼

$ cd ~/android

獲得內核源代碼倉庫

$ git clone git://android.git.kernel.org/kernel/common.git kernel
$ cd kernel
$ git branch

顯示

* android-2.6.27

說明你現在在android-2.6.27這個分支上,也是kernel/common.git的默認主分支。

顯示所有head分支:

$ git branch -a

顯示

* android-2.6.27
remotes/origin/HEAD -> origin/android-2.6.27
remotes/origin/android-2.6.25
remotes/origin/android-2.6.27
remotes/origin/android-2.6.29
remotes/origin/android-goldfish-2.6.27
remotes/origin/android-goldfish-2.6.29

我們選取最新的android-goldfish-2.6.29,其中goldfish是android的模擬器模擬的CPU。

$ git checkout -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29
$ git branch

顯示

android-2.6.27
* android-goldfish-2.6.29

我們已經工作在android-goldfish-2.6.29分支上了。

d)設定交叉編譯參數

打開kernel目錄下的Makefile文件,把CROSS_COMPILE指向剛才下載的prebuilt中的arm-eabi編譯器.

CROSS_COMPILE ?= arm-eabi-

LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,
$(call ld-option, -Wl$(comma)–build-id,))

這一行注釋掉,並且添加一個空的LDFLAGS_BUILD_ID定義,如下:

LDFLAGS_BUILD_ID =

e)編譯內核映像

$ cd ~/android/kernel
$ make goldfish_defconfig
$ make

f)測試生成的內核映像

$ emulator -avd myavd -kernel ~/android/kernel/arch/arm/boot/zImage

熱點內容
php程序員書籍 發布:2022-10-05 03:44:21 瀏覽:626
android簡單游戲 發布:2022-10-05 03:43:27 瀏覽:339
釣魚牌密碼在哪裡找 發布:2022-10-05 03:39:55 瀏覽:125
java實現隊列 發布:2022-10-05 03:39:45 瀏覽:80
伺服器如何連接埠 發布:2022-10-05 03:39:35 瀏覽:665
蘋果內存和安卓內存有什麼不一樣 發布:2022-10-05 03:38:14 瀏覽:942
pythonetreexml 發布:2022-10-05 03:31:59 瀏覽:946
開游戲伺服器一定要公網ip嗎 發布:2022-10-05 03:31:56 瀏覽:266
如何配置全局地址池視頻 發布:2022-10-05 03:08:33 瀏覽:826
為什麼安卓機沒有來電閃光 發布:2022-10-05 03:02:01 瀏覽:23