自我進階(三) 編譯軟件開發工具包--SDK

一、什麼是Android SDK、API

Android SDK(Software Development Kit)提供了在Windows/Linux/Mac平臺上開發Android應用的開發組件,Android支持所有的平臺,其包含了在Android平臺上開發移動應用的各種工具集。
工具集不僅包括了Android模擬器和用於Eclipse的Android開發工具插件(ADT),而且包括了各種用來調試、打包和在模擬器上安裝應用的工具。
Android SDK主要是以Java語言爲基礎,用戶可以使用Java語言來開發Android平臺上的軟件應用。通過SDK提供的一些工具將其打包成Android平臺使用的apk文件,然後用SDK中的模擬器(Emulator)來模擬和測試軟件在Android平臺上運行情況和效果。

爲Android 的開發提供開發環境,提供爲們所需要的工具集,而API 測試我們所需要的那個工具

例子:

A 開發的應用,B想使用,那麼A 把自己寫的代碼打包成jar或者其他,又B來使用,A 代碼中B要使用的功能就是API 了

二、到底是使用官方提供的SDK 還是自己編譯的SDK 呢?

  1. 這就好比是你自己在Android studio 中開發的Demo有一個依賴A,和一個別人寫的依賴B,兩者功能相同,那卻別是什麼呢?

依賴(SDK,以下稱SDK)的存在可以很有效的提高開發效率、代碼質量、複用率減少項目體積等等好處,一個成熟的SDK具有體積小(相對)、功能易用、擴展性(最主要)好等優點,

  • 那我們拿上面的A、B 來說,有一個新的功能添加的時候,是自己的代碼非常容易修改,B 就相對難搞了,
  • A 中只有自己想要個功能的代碼,B 不能剔除無用代碼

當然上面的原理在SDK 中還是有用的

三、編譯自己的SDK

以下兩篇文章是編譯前準備的,推薦閱讀
自我進階(一) Android 源碼編譯,環境準備

自我進階(二) Aandroid 源碼編譯

 1. 源碼文件AndroidSoucre文件,初始化編譯環境
. build/envsetup.sh
 2. 編譯SDK
make sdk

使用的還是make命令

編譯完成之後,配置環境變量

1. sudo vim /etc/profile
在最後一行插入:
export PATH=$PATH:路徑/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=路徑/target/product/generic_arm64
退出保存

說明:
2. /out/host/linux-x86/bin有我們要執行的emulator命令
3. /target/product/generic_arm64 是Android鏡像存放目錄,執行emulator命令時會用到

四、 運行emulator

emulator -partition-size 20480

android 使用的Android 鏡像文件爲system.img、userdata.img和ramdisk.img,不單獨指定的時候是使用我們指定的編譯目標的目錄 out/target/product/generic_arm64下的文件,編譯內核默認/prebuilts/qemu-kernel/arm64/kernel-qemu

五、瞭解emulator常用的命令

emulator -help 查看所有命令
  • -sysdir <dir>

earch for system disk images in dir 在目錄中查找系統磁盤映像

  • system <file>

從<file讀取初始系統圖像

  • ramdisk

ramdisk映像(默認值/ramdisk.img

爲什麼單獨說這三個命令呢?

前面說過Android 模擬器運行需要四個文件

  • Linux Kernel鏡像zImage
  • system.img
  • userdata.img
  • ramdisk.img

後面三個是Android鏡像,第一個是系統內核,一部分編譯Android的人就是希望將自己編譯的鏡像文件刷到自己的機器上,重新編譯部分SDK 或者添加自己定製的應用,重新打包system.img來滿足自己的需求

上一篇:自我進階(二) Aandroid 源碼編譯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章