導航:首頁 > 源碼編譯 > 安卓的編譯環境是什麼

安卓的編譯環境是什麼

發布時間:2023-04-08 07:45:32

Ⅰ 安卓app主要用什麼編程語言的

安卓App用java和Kotlin作為開發語言。

Google IO 2017宣布了 Kotlin 會成為 android 官方開發語言。在Kotlin 語言出現之前,幾乎所有的安卓應用程序都是使用Java語言編寫的。

(1)安卓的編譯環境是什麼擴展閱讀

Google在今年I/O2017開發者大會中宣布,正式把Kotlin納入Android程序的一級開發語言(First-classlanguage),並與開發團隊JetBrains合組非牟利基金會推廣Kotlin。據多間外國媒體報導,這是GoogleI/O開發者大會中引來最多歡呼聲的消息。

Kotlin將於AndroidStudio3.0得到支持,JetBrians指開發者不用再安裝額外元件或擔心兼容問題。Kotlin能與Java互通,但擁有Java不支持的功能。Google相信利用Kotlin可使Android程序開發更快捷有趣,但他們補充,此舉絕非取代Java和C++的官方支持。

Ⅱ 編譯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

Ⅲ 什麼是編譯環境他的作用是什麼編譯環境跟運行平台有什麼不同

編譯環境是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。作用是通過代入預定義等程序段將源程序補充完整。

編譯環境跟運行平台區別為:工具不同、調試不同、硬體支持不同。

一、工具不同

1、編譯環境:編譯環境包含開發、調試和部署等工具。

2、運行平台:運行平台只包含運行指令和class實現的工具。

二、調試不同

1、編譯環境:編譯環境有調試代碼的功能,調試後可重新編譯執行。

2、運行平台:運行平台沒有調試代碼的功能。

三、硬體支持不同

1、編譯環境:編譯環境使用的是模擬設備,不需要硬體支持。

2、運行平台:運行平台需要硬體支持,在實際設備中運行。

Ⅳ Android雜談:編譯環境參數是從哪裡來的

我們通過走一下編譯步驟,看一下,這些參數的來源吧!

上面這句命令,是編譯前准備環境的。
/ build / envsetup.sh
可以看到到引進了一堆的函數,有mm,mmm等常用指令

看看跑了啥邏輯,
1.首先判斷了下shell的環境,最好使用/bin/bash。
參考: https://www.douban.com/note/404726254/
2.包含廠商vendor目錄的vendorsetup.sh

包含後,echo列印出來,岩喊像下面這樣子~

lunch就是選擇一些編譯參數,估計就是在這里准備好這些全局的參數的。
lunch函數在envsetup.sh裡面定義

set_stuff_for_environment
會進入set_stuff_for_environment,主要是設置title,java環境,paths還有序列號。貌似沒多大用處~

printconfig
最後會進入printconfig,就是列印配置信息給我們看啦!

列印一些配置,可以看到TARGET_PRODUCT,TARGET_BUILD_VARIANT和TARGET_BUILD_TYPE。

printconfig包含get_build_var函數,函數執行了一句make指令,make --no-print-directory -C "$T" -f build/core/config.mk mpvar-$1
(1)make -C "$T" 就是跳轉到top目大棗螞錄。
(2)make -f 來指定makefile文件build/core/config.mk,我去config.mk還是個makefile文件。
(3)mpvary用來列印用的,就是列印第一個參數$1啦,呵呵呵
所以,主要get_build_var主要是執行makefile config.mk。

看看/ build / core / config.mk ,可以看到他進一步包含了envsetup.mk

envsetup.mk就是最後設置一些常用編譯環境參數的文件了!!
/ build / core / envsetup.mk
看下面的圖,可以看到他定義了很多編譯常量了!!

1.通過source envsetup.sh可以引進很多函數,包含vendorsetup.sh
2.通過lunch,選擇類型後,會編譯build/core/config.mk文件,進而再編譯envsetup.mk文件,而這個文滾埋件就是定義編譯常量的地方!

Ⅳ Android sdk 、adt-eclipse 、android-ide 這三者是什麼意思

Android sdk :android的開發工具包,裡面有開發需要的工具和庫類
adt-eclipse : adt是一個eclipse插件,用來開發android的
android-ide :就是android的集成開發工具,比如eclipse

安卓系統是用什麼語言編的

安卓系統的編程語言,C/C++(底層) Java等(應用層)。

1、Android是一種基於Linux的自由及開放源代碼的操作系統。主要使用於移動設備,如智能坦鄭手機和平板電腦,由Google(谷歌)公司和開放手機聯盟領導及開發。

2、尚未有統一中文名稱,中國大陸地區較多人使用「安卓」或「安致」。Android操作系統最初由Andy Rubin開發,主要支持手機。

(6)安卓的編譯環境是什麼擴展閱讀:

1、Android在運行一個程序時首先需要UnZip,然後類似Symbian那樣直接執行安裝,和Windows Mobile中的PE文件有區別。

2、這樣做對於程序的保密性和可靠性不是很高,通過dexmp命令可啟信激以反編譯,但這樣做符合發展規律,微軟的 Windows Gadgets或者說WPF也採用了這種構架方式。

3、悄襪在Android平台中dalvik vm的執行文件被打包為apk格式,最終運行時載入器會解壓然後獲取編譯後androidmanifest.xml文件中的permission分支相關的安全訪問,但仍然存在很多安全限制,如果你將apk文件傳到/system/app文件夾下會發現執行是不受限制的。

4、最終我們平時安裝的文件可能不是這個文件夾,而在android rom中系統的apk文件默認會放入這個文件夾,它們擁有著root許可權。

Ⅶ 安卓app主要用什麼編程語言的

安卓Android系統版本,開發語言是Java;

其他系統開發使用語言:

1、蘋果ios系統版本,開發語言是Objective-C;

2、微軟Windows phone系統版本,開發語言是C#;

3、塞班symbian系統版本,開發語言是C++。

App開發,是指專注於手機應用軟體開發與服務。App是application的縮寫,通常專指手機上的應用軟體,或稱手機客戶端。另外目前有很多在線app開發平台。

當然移動互聯網時代是全民的移動互聯網時代,是每個人的時代,也是每個企業的時代。APP便捷了每個人的生活,APP開發讓每個企業都開始了移動信息化進程。

(7)安卓的編譯環境是什麼擴展閱讀:

APP開發工具

MOTODEV Studio for Android

MOTODEV Studio for Android,這是基於Android的開發環境,為開發者們提供新的MOTODEV App Accelerator Program使他們可以開發出更適合摩托羅拉Android手機的應用程序。

J2ME開發插件 Mobile Tools for Java

Mobile Tools for Java (MTJ) 是Nokia公司開發的一款 Eclipse插件,用於支持 Java 手機應用程序開發。其前身就是大名鼎鼎的 EclipseME。

NOKIA手機開發包 gnokii

gnokii 是一個NOKIA手機開發包,可支持大多數NOKIA手機的型號。功能無比強大可以修改LOGO,收發簡訊,撥打/接聽電話,編輯鈴聲。甚至還可以取到對方手機的蜂窩號(Cell ID),從而起到定位的作用。

apk文件修改工具 Root Tools

RootTools是一個新的工具軟體,Android開發者可以在這一工具軟體的支持下,對.apk格式的文件進行再次修改,讓程序表現更加出色,滿足用戶的需求。Root Tools裡面自帶有很多工具,比如BusyBox,它裡面集成壓縮了很多Linux的工具和命令,這樣軟體開發者在對....

IDEA的Android開發插件 idea-android

idea-android 是在 IDEA 集成開發環境中開發 Android 應用程序的插件。

Android開發工具 MOTODEV Studio

MOTODEV Studio是摩托羅拉公司開發的 Android 應用開發工具。這是一個 Eclipse 的插件。 該插件同時也提供了 JavaME 應用的開發和 WebUI 的開發功能。

參考資料:網路---app開發

Ⅷ android apk 反編譯需要什麼環境

有jdk環境就可以然雹肢後下載一個 ApkDec-Release-0.1 一鍵android反編譯工具、快速反返肆冊編譯試試吧漏宏、記得給分哦

Ⅸ 為什麼Google官方推薦編譯Android環境是ubuntu,而不是debian

google自己用ubuntu開發的多吧,ubuntu是商業公司冊槐皮,支持比較好就是了,debian那是社區,愛做不做州差的有明純些,現在和閥門廠掛鉤了,感覺好很多

Ⅹ 我想在安卓手機上編編程,有什麼軟體可用

NO.1c4droid一款手機上的c語橘巧言編譯器。個鎮友人認為手機上最好用的,沒有之一!c4droid是款Android設備上的C/C++程序編譯器。

NO.2AIDE功能強大,內置學習教程。

AIDE是一個AndroidJava集成開發環境,可以讓你在Android系統內進行Android軟體和游戲的開發。

NO.3我的應用iapp專為手機研發,代碼編寫簡單,學習容易。iapp還很年輕,特別需要大家的支持!NO.4cppdroid和c4droid一樣,是一款手機上的c語言編譯器。安卓上的C/C++編譯環境,可以幫助你在手機上編寫c/c++程序,和c4droid各有優點,cppdroid最大的優點就是可以即時報錯,寫一個字元就檢查一遍,保證程序的正確性,而且御伍槐編譯速度快,雖然還有部分地方趕不上c4droid,但是和c4droid搭配還是不錯的。


閱讀全文

與安卓的編譯環境是什麼相關的資料

熱點內容
安卓手機如何錄制視頻長時間 瀏覽:283
安全問題app哪個好 瀏覽:445
壓縮水會變冰嗎 瀏覽:526
小說配音app哪個靠譜 瀏覽:820
編譯iso 瀏覽:944
照片生成pdf格式 瀏覽:194
病歷轉pdf 瀏覽:835
雲伺服器配硬體 瀏覽:978
伺服器10k什麼意思 瀏覽:21
pdfeditor漢化 瀏覽:884
新科學pdf 瀏覽:746
現在還有c語言編譯嗎 瀏覽:675
哪裡買到單片機 瀏覽:480
linux文件打開數量 瀏覽:510
編譯原理中什麼是l屬性文法 瀏覽:372
硬碟加密時出現的問題 瀏覽:61
如何退域命令 瀏覽:108
看書的app哪裡看 瀏覽:291
伺服器怎麼調大 瀏覽:3
android天氣apijson 瀏覽:984