導航:首頁 > 源碼編譯 > android開源源碼新手

android開源源碼新手

發布時間:2022-07-21 11:50:19

Ⅰ 拿到android 項目源碼後,如何才能以最高效的速度看懂

1.顯然Eclipse不是閱讀Android源碼的好工具,不流暢,搜索低效,繼承性關系/調用關系都無法有效查看。推薦Source Insight,在這個工具幫助下,你才可以駕馭巨大數量的Android 源碼,你可以從容在java,C++,C代碼間遨遊,你可以很快找到你需要的繼承關系。
順便,我們公司一直是Windows+linux+Samba的工作模式。
2.宏觀上看,Android源碼分為功能實現上的縱向,和功能拓展上的橫向。在閱讀源碼時需要把握好著兩個思路。
譬如你需要研究音頻系統的實現原理,縱向:你需要從一個音樂的開始播放追蹤,一路下來,你發現Jni調用解碼庫,共享內存的創建和使用,路由的切換,音頻輸入設備的開啟,音頻流的開始。
3.Android的功能模塊絕大部分是C/S架構,你心裡一定需要有這個層級關系,你需要思路清晰地找到Server的位置,它才是你需要攻破的城。然後你才能發現HAL和Kernel一層層地剝離。
我大概在三個月前閱讀完Android UI系統的源碼,這是Android最復雜的部分,沒有之一。
我需要先找一個開頭,和UI有直接關系的就是最常見的Activity了吧,我就從它開始解剖。
我從Activity的創建入手,尋找Activity真正的創建位置,setContentview這個方法很明顯和UI有關,這兩方面一結合,我發現了ViewRoot和WindowManager的身影,沿著WM和WMS我發現了Surface,以及draw的函數,它居然在Activity 創建時出現的DeCorView上畫東西。藉助Source Insight我總結了UI Java層的橫向靜態圖。
完成這個靜態UML,我覺得我可以開始功能實現上追蹤了,這部分主要是C++的代碼(這也是我堅定勸阻的放棄Eclipse的原因),我沿著draw函數,看到了各個層級的關系,SurfaceSession的控制和事務處理,SharedBuffer讀寫控制,彪悍的SurfaceFlinger主宰一切,OpenGL ES的神筆馬良。FrameBuffer和FrameBufferDevice的圖像輸出。一氣呵成的完成了。

Ⅱ 怎樣著手研究 Android 源代碼

一、源碼里的工程需要導入所有的Android源碼,不可以單獨作為一個Android工程導入到Eclipse里。
二、使用git和repo下載Android的源代碼,參考如下步驟
以下操作都是在Ubuntu10.04LTS下完成:
1)安裝git
sudo apt-get install git-core
2)安裝curl
sudo apt-get install git-core curl
3)安裝Repo,為了方便直接下載repo到用戶根目錄中。通過curl下載repo
curl http://android.git.kernel.org/repo >~/repo
4)給repo可執行的許可權
chmod a+x ~/repo
5)新建一個目錄,然後進入該目錄。通過repo將當前Android上所有源代碼下載。
首先初始化本地,
~/repo init -u git://android.git.kernel.org/platform/manifest.git
看到repo initialized in /android的提示後,則證明初始化完畢。成功後會在~/android下生成.repo文件夾
執行
repo sync
則自動開始下載源代碼。git支持斷點續傳,如果中斷了下次可繼續。
單獨下載內核,用這個
git clone git://android.git.kernel.org/kernel/linux-2.6.git
如果想拿某個branch而不是主線上的代碼,我們需要用-b參數制定branch名字,比如:
repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo
另一種情況是,我們只需要某一個project的代碼,比如kernel/common,就不需要repo了,直接用Git即可。
git clone git://android.git.kernel.org/kernel/common.git

Ⅲ Android studio 如何為下載下來的開源源碼,快速添加 log用來查看運行流程

在開發中,我們經常需要在Github上找一些開源項目用於自己的項目中,然而經常由於看不到其運行效果導致不斷的「試錯」,因此一般來說,本人在使用一個開源項目之前會將其下載並運行到手機上看效果。一方面可以准確判斷出是否適合自己的項目,另一方面可以根據項目需求做一定的修改。

1、 找到項目地址,點擊DownloadZIP,下載完成後,解壓到本地磁碟。如圖1所示

圖5

6、將項目導入AS,下載項目其餘需要的組件,編譯安裝,大功告成!

Ⅳ 如何閱讀一個android apk的開源源碼

要閱讀開源源代碼,你首先要知道這個開源軟體是干什麼的,不要直接一頭裁到代碼里去,知道代碼是干什麼的再去看它,明顯要比看代碼再猜它是干什麼的輕松的多。然後開始看的時候注意找應用程序的主Activity,從OnCreate看起,多多留意類的成員變數及其作用。

Ⅳ 初學Android開發!求一個完整的詳細的Android小程序源碼參考!

媒體播放器源碼Audio.java
package org.example.audio;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.KeyEvent;

public class Audio extends Activity {
private MediaPlayer up, down, left, right, enter;
private MediaPlayer a, s, d, f;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// Native rate is 44.1kHz 16 bit stereo, but
// to save space we just use MPEG-3 22kHz mono
up = MediaPlayer.create(this, R.raw.up);
down = MediaPlayer.create(this, R.raw.down);
left = MediaPlayer.create(this, R.raw.left);
right = MediaPlayer.create(this, R.raw.right);
enter = MediaPlayer.create(this, R.raw.enter);
a = MediaPlayer.create(this, R.raw.a);
s = MediaPlayer.create(this, R.raw.s);
d = MediaPlayer.create(this, R.raw.d);
f = MediaPlayer.create(this, R.raw.f);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
MediaPlayer mp;
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_UP:
mp = up;
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
mp = down;
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
mp = left;
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
mp = right;
break;
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_ENTER:
mp = enter;
break;
case KeyEvent.KEYCODE_A:
mp = a;
break;
case KeyEvent.KEYCODE_S:
mp = s;
break;
case KeyEvent.KEYCODE_D:
mp = d;
break;
case KeyEvent.KEYCODE_F:
mp = f;
break;
default:
return super.onKeyDown(keyCode, event);
}
mp.seekTo(0);
mp.start();
return true;
}

}

Ⅵ 想看一個開源的Android Studio 項目 , 新手看不懂 有沒有大神教教我該怎麼看

看開源的項目的,一定要看他的開發文檔,有很多注釋

Ⅶ android系統是開源去哪裡下載源代碼

他這不是編程原代碼對外公開,而是系統外部介面對外公開,簡單說,開源就好比是,英特爾生產一個CPU 然後告訴你所有的腳都是干嗎用的,這個告訴你干嗎用的就等於是安桌的開源了, 你知道CPU那些腳干嗎用的後,然後再根據這些腳的功能生產主板,針對這些腳所生產出來的主板就好比那些為因安桌開源後,別人針對安桌所編寫出來的軟體了,

Ⅷ Android新手入門,求一個計算器的源代碼,不要太復雜的就好。。。

#include "SDL2/SDL.h"
#include "SDL2/SDL_image.h"
#include "SDL2/SDL_ttf.h"
#include "unistd.h"
#define N 200

SDL_Window *win = NULL;
SDL_Renderer *ren = NULL;

SDL_Texture *tex[3] = { NULL };
SDL_Surface *sur[2] = { NULL };

SDL_Color color[2] = {
{255, 0, 0}
, {0, 255, 0}
};

SDL_Rect p[3];

SDL_Event e;

TTF_Font *font[3] = { NULL };

char *pic = "/picture/cbg.png",*ttf = "/font/DroidSans.ttf"; /*
所應用文件的相對路徑*/
char way[2][100]; /*
存儲路徑 */
char token[N]; /* 存放表達式字元串的數組 */
char str[N]; /* 獲取輸入字元串數組 */
char result[N / 4]; /* 存放結果的數組 */
char K = 'k'; /* 用來判斷觸摸字元 */
int W, H; /* 屏幕寬高 */
int x, y, y_1, pst = -1; /* 用來獲取觸摸位置 */
int n = 0, m = 0, t = 0; /* 初始化 */
int computed = 0; /* 判斷是否已經計算0表示沒有計算 */
bool quit = false;

void init(); // 載入

void clear(); // 清理

Ⅸ 有沒有適合Android初學者的APP源碼推薦

如果是初學者的話,建議先看看sdk中的sample,這些項目都是google提供的研究價值蠻高的,先從java基礎開始學起吧。

Ⅹ 有沒有適合 Android 開發初學者的 App 源碼推薦

我覺得與其看那些app的代碼 倒不如自己嘗試基於android源代碼的不同組件增加或減少功能來學習android內部的代碼 原因如下

1 源代碼密度高 維護和使用的人最多 所以看下來的價值最大
2 看app代碼可以看他的架構 看他的trick 但是真正的性能優化 還是要從源碼入手

可能有些人說 直接看源代碼難度高 其實不然 現在一個優秀的開源代碼 基本都具備面對開源社區友好的優勢 讀起來並不一定比隨便抓一個其他人寫的代碼要難

可以嘗試循序漸進的方式 比如先嘗試給app定製桌面 改ui 然後再到通知系統 線程 資料庫等比較低層的 我覺得這個過程也會是一段非常有趣的代碼之旅~

閱讀全文

與android開源源碼新手相關的資料

熱點內容
nc編程軟體下載 瀏覽:382
如何限制手機app的使用 瀏覽:307
安卓華為手機怎麼恢復桌面圖標 瀏覽:956
我的世界電腦版伺服器地址在哪找 瀏覽:533
違抗了命令 瀏覽:256
安卓如何實現拖拽放置 瀏覽:91
凈資產收益率選股指標源碼 瀏覽:599
血壓力感測器計算公式單片機 瀏覽:466
全網介面vip影視解析源碼 瀏覽:916
如何破解伺服器遠程密碼錯誤 瀏覽:377
平安深圳app如何實名認證 瀏覽:500
linux網路監控軟體 瀏覽:889
內網伺服器如何上傳文件 瀏覽:140
程序員在你心中是什麼 瀏覽:1
蘋果手機怎麼找回app賬號 瀏覽:466
房屋中介網站源碼 瀏覽:29
命運格數演算法 瀏覽:852
ets3編程 瀏覽:730
怎麼製作音樂相冊的文件夾 瀏覽:566
寧夏重加密硅灰用法 瀏覽:231