1. 程式人生 > >Android檢視api原始碼

Android檢視api原始碼

當我們閱讀Android API開發文件時候,上面的每個類,以及類的各個方法都是已經寫好的方法和控制元件,可是我們只是在搬來使用,不知道它的原理,它是如何被實現的。android系統是開源的,所以谷歌官方在每釋出一個版本的時候都會放出它對應的API原始碼的,讓我們可以深入瞭解android的API實現過程,這就是開源的魅力。如果我們從API原始碼的角度去了解了開發過程,那樣對於作為開發人員的我們,便會對他有更深入的體會,有助於日後的軟體開發。

比如檢視Activity的原始碼,如圖

也可以檢視系統方法怎麼去實現一個過程,

如每個activity設定介面時都會去呼叫的一個方法:setContentView(R.layout.welcome

);

從程式碼中我們可以看到,這個方法其實就是系統分裝好我們拿來用的簡化版,我們也可以按照原始碼裡面的

getWindow().setContentView(R.layout.welcome);

這樣的實現效果都是一樣的。

在例如系統提供的按鈕控制元件Button:

不看不知道一看明白了,原來它的父類就是TextView,那在然我們看看TextView控制元件的原始碼:


可以發現,它的父類是View,安卓的系統控制元件都是繼承了View類,畫出來的,所以在我們想要自定義控制元件的時候,可以繼承View去做出自己想要的控制元件。

在Eclipse中需要檢視某個類的原始碼,直接按住Ctrl 然後點選想要檢視的類或則方法,就會開啟相對應的類檔案,可是這是建立在配置好源source的情況下才會打得開,下面讓我們去看看如何配置:

一.android API 原始碼

  1.首先要先下載SDK下的對應版本API的原始碼Source for Android SDK

2.之後找到你所安裝的SDK所在的目錄,我的SDK目錄路徑是:C:\Users\Administrator\android-sdks

找到各個版本的對應sources資料夾

裡面就是對應的你所下載版本的原始檔

我們拿4.3來做個例子(android-19  就是對應4.3)

找到目錄路徑

C:\Users\Administrator\android-sdks\sources\android-19

之後右擊你的專案,選選單最下方的Properties --- Java Buld Path  --- Libraries  --- android 4.3  ---  android.jar

點選Edit,

在上圖所示輸入框放入你前面原始碼的目錄,之後專案會自動更新,之後便可以檢視原始碼了。

二:檢視對應的support拓展包的原始碼

下面以android-support-v4.jar為例子

1.先要下載SDK下的android support library,這個裡面包含了最新版本的拓展包

之後找該拓展包到目錄,這就是V4的架包路徑,我的路徑為:C:\Users\Administrator\android-sdks\extras\android\support\v4\src

你所在的專案的LIB檔案,會有一個android-support-v4.jar架包,在該目錄下建立檔案命名為:android-support-v4.jar.properties,(其他V7什麼的架包類似,在原架包名稱後面加上.properties既可以),如下圖所示:

我的是support v4的架包原始碼路徑為C:\Users\Administrator\android-sdks\extras\\android\support\v4\src

之後開啟你所建立的這個檔案,在裡面輸入你該架包原始碼所在的位置路徑:

如果是WINDOWS作業系統下,輸入的路徑為:C:\\Users\\Administrator\\android-sdks\\extras\\android\\support\\v4\\src

ndroid-support-v4.jar.properties檔案中格式: src = C:\\Users\\Administrator\\android-sdks\\extras\\android\\support\\v4\\src

之後這步很關鍵,就是把這個專案CLOSE了,之後在OPEN,

之後我想檢視V4架包的FRAGMENT這個類,就是通過按住CTRL在點選FRAGMENT,查看了,

通過原始碼去深入學習API的實現過程,可以讓我們對android有更深入的體會和了解。

相關推薦

Android檢視api原始碼

當我們閱讀Android API開發文件時候,上面的每個類,以及類的各個方法都是已經寫好的方法和控制元件,可是我們只是在搬來使用,不知道它的原理,它是如何被實現的。android系統是開源的,所以谷歌官方在每釋出一個版本的時候都會放出它對應的API原始碼的,讓我們可以深入瞭

檢視AndroidAPI原始碼方法

推薦一個去除Android的API原始碼中hide隱藏的API地址,可以直接下載替換Android Studio中platform下android.jar檔案 地址: https://github.com/anggrayudi/android-hidden-api  用法: 1.下載對

Android檢視網頁原始碼

1 佈局 <ScrollView android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView

解決 Android 26 無法檢視系統原始碼的問題

隨著 Android 8.0 的正式釋出,相信有些朋友已經升級 SDK 開始使用新特性了。然而需要注意的是,這一次 Google 並沒有及時釋出與之對應的 Android-26 原始碼。這帶來的問題是,當你按下 command 同時單擊某個系統 API 想瀏覽原始碼文件時,會

ANDROID自定義檢視——onLayout原始碼 流程 思路詳解

簡介: 在自定義view的時候,其實很簡單,只需要知道3步驟:    1.測量——onMeasure():決定View的大小    2.佈局——onLayout():決定View在ViewGroup中的位置    3.繪製—

檢視Android系統的原始碼 線上和離線方式 及閱讀工具

前言     不管是做Android底層(Framework-Linux-驅動)開發,還是做APP開發,對於Android的某一個功能,某一個機制,或者某一個API,它到底是如何實現的,需要 Re

Android檢視jar包原始碼問題

在Eclipse中開發android的應用程式時,有時想檢視函式的內部實現,但是當在函式上點選ctrl和滑鼠左鍵的時候, 往往出現如下提示:  Class File Editor Source not found The JAR of this class fil

Android專案匯入jar包——Android檢視Jar包的原始碼——配置

一、Jsoup 的 jar包的匯入和jsoup 的原始碼檢視。 類似【android-support-v4.jar】 (1)Jsoup匯入: 將包直接放入libs目錄下,系統會自動識別——不用修改Build Path! 使用jsoup不需要新增許可權,只是訪問網頁讀取儲

關於Eclipse中“ctrl+滑鼠左擊類”快捷鍵不能檢視該類API原始碼的解決方法

                   這兩天重灌了一次系統,由32位的轉成了64位的,以為64位系統只能安裝64位的JDK,後來從網上查詢了一下,只要安裝的JDK和Eclipse相匹配就行,也就是說64位系統也能夠執行32位的Java和32位的Eclipse,這裡順帶提一下

Android studio檢視sdk原始碼

以Android api24為例: 1、當我們在Activity上按下ctrl+滑鼠左鍵,會出現Activity.class檔案,這是Android studio反編譯過來的Activity.class檔案,對我們有用的資訊很少 2、看圖中標記的,找不到原始碼有兩種情況

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/annotation/ColorRes.class

導致 .class div src jar 技術 cnblogs 沖突 信息 保存信息如上: 我在添加一個支持庫的時候遇的問題,這個庫com.yanzhenjie:album:1.0.5 這是由於v4包重復導致的,在網上我也找過多種解決方案 用了這種,方式 confi

【輸出文件】 Android 加密 模組原始碼分析

                                   Android6.0 加密模組解析

關於Android Camera2 API 的自動對焦的坑

https://www.jianshu.com/p/280e5301b7b9 一、使用。關於Camera2的API使用,參考Google官方的例子: Camera2Basic Camera2Raw Camera2Video 這是一手資料,配合官方的資料理解Camera2 API的底層原理:

android檢視so動態庫的介面

使用命令列檢視so介面: nm -D xxx.so 本人測試自己用到的一個so動態庫的介面資訊如下: 00029104 T Java_com_bjy_ffmpeg_1cmake_1single_utils_FFmpegKit_run U __aeabi_d2lz

Android】Retrofit原始碼分析

Retrofit簡介 retrofit n. 式樣翻新,花樣翻新 vt. 給機器裝置裝配(新部件),翻新,改型 Retrofit 是一個 RESTful 的 HTTP 網路請求框架的封裝。注意這裡並沒有說它是網路請求框架,主要原因在於網路請求的工作並不是 Retrofit

Android】OkHttp原始碼分析

Android為我們提供了兩種HTTP互動的方式:HttpURLConnection 和 Apache HttpClient,雖然兩者都支援HTTPS,流的上傳和下載,配置超時,IPv6和連線池,已足夠滿足我們各種HTTP請求的需求。但更高效的使用HTTP 可以讓您的應用執行更快、更節省

如何檢視apk原始碼

有時我們需要研究一下某個apk的原始碼,應該怎麼做呢? 經過網上搜集資料並親自驗證,總結如下: 資料: Android APK反編譯檢視原始碼的方法 https://jingyan.baidu.com/article/d3b74d64ffd91f1f77e609a3.html

Android 檢視apk安裝包的AndroidManifest.xml檔案

在Android開發中,可能需要從我們自己的應用跳轉到別的應用的介面,但是在不知道別的應用的包名以及類名的情況下,是很難做到這一點的,有個最簡單的方法就是下載應用的apk檔案,然後修改後綴名為zip或者rar,之後解壓檔案,在解壓出來的檔案中,就會有一個AndroidManifest.xml的檔案,

Android Doze模式原始碼分析

轉自:https://www.cnblogs.com/l2rf/p/6373794.html   科技的仿生學無處不在,給予我們啟發。為了延長電池是使用壽命,google從蛇的冬眠中得到體會,那就是在某種情況下也讓手機進入類冬眠的情況,從而引入了今天的主題,Doze模式,Doze中

android基礎--API動畫學習與擴充套件

動畫效果一: AnimatorSet.Builderl: 這篇文章主要看的不是這個簡單的效果,大家來看下文章中的註釋與解釋吧 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24