日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

安卓从入门到进阶第一篇(环境搭建)

發布時間:2024/1/8 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 安卓从入门到进阶第一篇(环境搭建) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

“轉發,助力一波!”

1.1?系統配置

1.1.1 開發環境

我們平時使用的電腦環境,基本都是Windows操作系統,為了開發Android去將電腦裝成Linux系統,顯而易見不太友好,于是市面上便有公司開發出來模擬器,可以模擬一個硬件環境,我們在上面安裝Linux系統,來模擬出來一個開發環境。這里我是在Windows 7 64位操作系統,內存為8G(后續需要加大內存),CPU為AMD八核處理器,頻率3.30GHZ,具體如下圖所示:

1.1.2?VMware Workstation

我們這里選擇VMware Workstation 12 PRO版本,從網絡下載此版本,按照提示一步步安裝即可。安裝應用,我們時刻記得,盡量安裝在純英文的路徑下,防止有些應用出現未知錯誤。

1.1.3 Ubuntu 16.04

1.1.3.1 下載鏡像

我們這里選擇Android開發經典的Linux系統Ubuntu,?Ubuntu以其友好的桌面系統,以及軟件包依賴集成,使得我們使用起來非常方便,這里我們選擇Ubuntu 16.04來進行開發。

從官網http://releases.ubuntu.com/?找到Ubuntu 16.04.5 LTS (Xenial Xerus)

擊進入下載頁面,我們這里選擇64-bit PC (AMD64) desktop image進行下載。

1.1.3.2 安裝鏡像

打開VMware Workstation,選擇創建新的虛擬機,出來向導界面。

我們點擊下一步,選擇安裝程序光盤鏡像文件,點擊瀏覽,選擇下載的Ubuntu 16.04鏡像,點擊下一步。

后填寫全名,用戶名,密碼以及確認密碼信息,點擊下一步。

給虛擬機起個名稱,選擇保存虛擬機的路徑,此路徑對應的磁盤空間,必須充足,至少有200G的空閑空間。確定好后,點擊下一步。

填寫需要的硬盤大小,我們這里填寫300G。按照當前Android的代碼大小以及編譯過程所需的硬盤空間,建議200G以上,這里選擇300G。如果在開發過程中發現空間不夠,檢索Vm擴容,同時配合使用gparted工具進行操作即可。

點擊下一步,確定后進入安裝系統中。?我們只需要保持網路暢通,等待最終完成即可。在安裝完后,我們關閉下虛擬機,設置下虛擬的參數,具體為:

右鍵Ubuntu 16.04,選擇設置,進入設置主界面。

我們將內存改到6G多,太小了編譯中會出現莫名其妙的錯誤,無法編譯。修改完后在進到處理器的界面,選擇對應的設置下。

我們這里改成8核,提高效率。這里的核數跟你當前的硬件CPU核數關聯,這里我的CPU是8核的,所以這里配置為8。

1.1.3小結

這一小節,我們通過安裝VMware Workstation虛擬機,在虛擬機上安裝一個Ubuntu 16.04系統,以此來作為我們Android的開發環境。既然環境已經搭建好了,讓我們來下載Android源碼。

1.2?源碼下載

上一節我們完成了環境搭建,那么這一節就來抓取Android源碼。

1.2.1下載repo

因為我們的Android代碼比較龐大,所以代碼是需要進行有效的管理。市面上主要的代碼管理方式有SVN和Git,SVN屬于集中式倉庫管理,當一個人提交的時候,其他人是不能提交,在小的團隊里面,SVN可以滿足要求,但是當同一時間提交人數增加時,由于SVN的集中式管理模式,導致一人提交,其他人都會失敗,反復提交影響工作效率。記得當時公司使用SVN,在合并代碼后進行提交,都要在深夜或者周末,沒人的時候進行操作,避免沖突。為了解決集中管理的方式,Git的分布式管理產生。Git使用差分方式,分布式存儲的模式進行開發,避免了SVN的問題。Android源碼目錄較多,如果用一個Git倉庫管理,顯得笨重不夠靈活,于是便建立了多個Git倉,而為了方便管理這些Git倉庫,出現了repo工具,repo工具將Git倉庫集中起來,進行統一管理,因此我們需要進行下載repo。

創建放置repo的路徑,設置環境變量

mkdir ~/bin PATH=~/bin:$PATH

首先讓我們安裝curl工具,此工具用來下載repo,我們使用

sudo apt-get install curl 安裝。

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo ? #使用tuna的git-repo鏡像

下載完后,將其配置成可執行。

chmod a+x ~/bin/repo

1.2.2 抓取代碼

首先我們安裝git

sudo apt-get install git

并且配置git的全局信息

git config --global user.name “codegg” git config --global user.email codegg@home.com

這兩個信息會在你抓取代碼,以及提交代碼的時候使用。

由于國內訪問Google的速度過慢,我們使用國內的鏡像代碼,而這里我們使用清華鏡像的代碼,于是輸入如下命令,進行下載。

wget -c?https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar

下載完后,將其解壓開來

tar vxf aosp-latest.tar

解壓完成,我們進入目錄cd aosp

現在我們使用repo進行同步,首先使用

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r3

進行初始化,-b參數來選擇對應的Android版本,我們這里選擇android-9.0.0_r3,如果想選擇別的版本,在

https://source.android.com/source/build-numbers.html#source-code-tags-and-builds中選擇對應的版本,替換-b參數后的內容即可。

初始化完成后,我們使用repo sync 更新代碼,此過程比較漫長,可以稍微打個盹去了。

1.2.3 小結

通過這一章節,我們知道了Android源碼使用的是Git分布式管理方式,同時Git整個是由repo進行管理。通過repo,將對應Android版本的代碼抓取下來。既然已經下載下來代碼,那么我們先編譯版本出來看看。

1.3?編譯環境

1.3.1 配置軟件包源

我們需要安裝編譯中使用的軟件,而如果用國外的源去下載,就太慢了,于是我們使用國內清華地址進行下載源。具體操作為:

cd /etc/apt/

sudo gedit sources.list

將下面這些信息配置上,同時記得將之前的備份,防止出錯。

默認注釋了源碼鏡像以提高 apt update 速度,如有需要可自行取消注釋

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

預發布軟件源,不建議啟用

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

1.3.2 安裝軟件包

輸入如下命令,進行安裝即可。

sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386

sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g+±multilib

sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386

sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev

sudo apt-get install git-core gnupg flex bison gperf

sudo apt-get install zip curl zlib1g-dev gcc-multilib g+±multilib

sudo apt-get install libc6-dev-i386

sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev

sudo apt-get install lib32z-dev ccache

sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4

sudo apt-get install libssl-dev

sudo apt-get install aptitude

1.3.3 編譯

編譯時記得我們的虛擬機必須配置很大的內存,這里我使用7.5G編譯通過。盡量將自己的電腦升級到12G以上內存。

使用source ./build/envsetup.sh命令,將當前工程下的項目檢索出來,同時生成一些簡單命令,以供后續使用。輸入命令后的界面如下:

然后輸入lunch

我們這里選擇2,arm64的eng版本。

然后我們輸入

make -j4 | tee build.log

便開始漫長的編譯過程,直到完成。模擬器編譯很慢,只能慢慢等著,當編譯完成后,會顯示編譯100%,完成。

然后我們輸入emulator啟動模擬器,運行起來的效果會是如下:

1.3.4 小結

這一節完成源碼的編譯,以及模擬器的啟動,讓我們將整個的編譯流程順了下來。小插曲,模擬器啟動過程一直出現異常,經過幾十分鐘后,能到桌面,但是沒法使用,于是后面的講解會通過另一種方式來展示。本來計劃的是可以一路在源碼中修改編譯,現在看來這個方式不行。當然,如果有人知道Android 9源碼編譯出來的img,在烏班圖下模擬器不能正常運行的原因,歡迎交流。如果你的電腦順利運行起來,也請告訴我下電腦配置。

下一節會來講解源碼各個目錄的含義,以及我們常用的目錄,同時編譯出來的out目錄下,都有什么內容,做到全面的講解。這里不僅是理論,重要的是實戰。這里會少講代碼,盡量讓你手把手的實戰,跟蹤流程。

后續的課程主要講解內容為

操作系統原理簡介

安卓啟動流程 系統框架 APK運行機制 文件系統 RECOVERY代碼 View顯示框架 虛擬機簡單講解 HOOK原理剖析 JNI實現原理 調試一切 破解反編譯

歡迎大家加入星球,一起學習!

不懼風霜

大話Android安全攻防

總結

以上是生活随笔為你收集整理的安卓从入门到进阶第一篇(环境搭建)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。