android44源碼目錄
Ⅰ android怎麼修改源碼
在Android界面的系統status bar上添加home,back,menu三個菜單,並完成對應的系統功能。並有higlight效果,修改status bar 高度和status bar上的文字尺寸。
這需要修改android sdk才能完成,我用的是eclair.下面就我的操作進行敘述。
1.首先完成界面顯示效果。
需要修改文件
./frameworks/base/services/java/com/android/server/status/StatusBarPolicy.java,仿照mBatteryIcon等icon的添加方式添加自定義的icon,圖片名稱指定就好了。另外還要記得修改./frameworks/base/core/res/res/values/arrays.xml,這里定義了icon的slot,並且決定了icon的擺放順序。
這樣,你需要的icon按鍵就可以顯示在系統的status bar上面了。
2.判斷touch event是否按動了某個icon
需要修改的文件
./frameworks/base/services/java/com/android/server/status/StatusBarView.java
首先在onTouchEvent函數中,獲取當前event的坐標,然後比較是否在某個按鍵范圍之內。由於系統對於statusBar的范圍已經有了定義,所以這里只需要比較橫坐標就可以了。
其次,也是這一步最關鍵的,怎麼獲取具體某一個icon的左右邊界坐標呢?系統的status bar左邊顯示的圖標都是notification, 右邊顯示的是系統icon. 也就是說左邊icon屬於mNotificationIcons,右邊的icon屬於mStatusIcons. 在文件StatusBarView.java中出現的offset = getViewOffset(mStatusIcons),得到mStatusIcons的最左邊的icon的left橫坐標。用N = mStatusIcons.getChildCount()得到共有幾個系統icon,其中包含visibility為false的icons.用mStatusIcons.getChildAt(N-i)得到的是從右邊數第i個的icon view. 這個view的getLeft()+offset就是這第i個icon的左邊橫坐標,對應的getRight()+offset就是這第i個icon的右邊橫坐標。本例中home鍵是右邊第2個icon.
3.定義icon響應事件
這里使用的方法是在StatusBarView.java中向
./frameworks/base/services/java/com/android/server/status/StatusBarPolicy.java發送一個Broadcast,讓StatusBarPolicy來完成具體的事件操作。這里需要注意的是不僅要在./frameworks/base/core/java/android/content/Intent.java中定義intent,還要在StatusBarPolicy的構造函數中添加該intent的過濾動作,即filter.addAction(Intent.ACTION_BACKICON_CHANGED).例如,按動了back鍵,如果當前事件為action_up,就向系統發送一個keyEvent,keyCode為KeyEvent.KEYCODE_BACK. 這里借用的是./frameworks/base/cmds/input/src/com/android/commands/input/Input.java中的sendKeyEvent函數,直接拷貝過來,按照需要稍微修改一下形參就可以了,過程不要修改。
需要說明的是,當點擊statusBar可以拉出來一個notification列表,當這個列表顯示出來的時候,這三個back, menu, home鍵的響應速度會非常慢,所以這時不響應事件並隱藏這三個鍵。具體做法是在StatusBarView的onTouchEvent()中判斷mService.mExpanded或者 mService.mTracking為真時就不做響應。mService是StatusBarService對象。隱藏三個鍵也是用Broadcast來做的,但這個intent是由StatusBarServie發出來的,當mExpandedVisible = false時顯示,當mExpandedVisible = true時隱藏。
這里還同時完成了highlight換圖的動作,也是用Broadcast來做得,處理過程一樣,就是需要區分action_down和action_up就可以了。
4.調整status bar的高度
如果你需要顯示較大的屏幕尺寸,同時statusBar的高度要拉大,上面的icon的size也需要調大。為了協調一致,顯示時間的字體和notification顯示的日期的字體也需要調大。具體做法如下:
a.調節status bar icon的size: 只調節status_bar.xml的textSize標簽似乎不起作用,同時又修改了./base/services/java/com/android/server/status/StatusBarIcon.java的t.setTextSize(32);語句才成功。不知道修改status_bar.xml的<com.android.server.status.AnimatedImageView>標簽下的layout_height值是不是必須的,反正我是一起都給改了。
b.調節status bar height: ./base/core/res/res/values/dimens.xml 找得我好辛苦!不知道還需不需要修改./base/core/res/res/values/themes.xml中的Window attributes的windowTitleSize值,反正我也給改了。
c.調節notification顯示日期字體的大小,修改status_bar.xml的<com.android.server.status.DateView>的textSize值。
到這里,就完成了所有工作,看看效果吧。
Ⅱ androidapp源代碼在哪個文件夾
在src文件夾里邊。res文件夾是布局的。bin里邊是App的安裝包文件夾。
Ⅲ android4.2源碼 kernel在什麼位置
您好,很高興能幫助您
1 git和repo簡介
Git 是 linux Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的分布式版本控制軟體,它不同於Subversion、CVS這樣的集中式版本控制系統。在集中式版本控制系統中只有一個倉庫(repository),許多個工作目錄(working ),而像Git這樣的分布式版本控制系統中(其他主要的分布式版本控制系統還有BitKeeper、Mercurial、GNU Arch、Bazaar、Darcs、SVK、Monotone等),每一個工作目錄都包含一個完整倉庫,它們可以支持離線工作,本地提交可以稍後提交到伺服器上。分布式系統理論上也比集中式的單伺服器系統更健壯,單伺服器系統一旦伺服器出現問題整個系統就不能運行了,分布式系統通常不會因為一兩個節點而受到影響。
因為Android是由kernel、Dalvik、Bionic、prebuilt、build等多個Git項目組成,所以Android項目編寫了一個名為Repo的Python的腳本來統一管理這些項目的倉庫,使得Git的使用更加簡單。
2 獲取源碼的工具安裝
(a)安裝git 和curl:
apt-get install git-core curl
(b)安裝repo:
創建存放repo目錄
$ cd ~
$ mkdir bin
$ export PATH=~/bin:$PATH
下載repo並改變許可權
$ curl http://android.git.kernel.org/repo >~/bin/repo
$ chmod a+x ~/bin/repo
3 下載源碼
下載Android源碼
$ mkdir mydroid
$ cd mydroid
$ repo init -u git://android.git.kernel.org/platform/manifest.git
$ repo sync
下載Android Linux kernel源碼(具體見http://android.git.kernel.org/)
git clone git://android.git.kernel.org/kernel/common.git(下載下來的內核源碼在common文件夾中)
//註:如果過程中出現錯誤:fatal: Unable to look up (port 9418) (Name or service not known),請檢查下Linux的網路是否可用。我出現這個錯誤的時候是因為無線網設置了IP和MAC綁定引起的。
Ⅳ android源代碼有build目錄,我怎麼找不到啊
LZ是down Source code的?
按照developer.android.com上的步驟來獲取源碼是肯定有build目錄的
我已經下了無數回啦
mm命令是android的編譯工具,跟Linux的makefile很像
在你需要的模塊目錄下都有個Android.mk,這時就可以在哪裡目錄下使用mm命令
LZ可以下Android.mk的模式,很簡單的
Ⅳ 誰有android4.4 Email源碼分析文檔
Google提供的Android包含了原始Android的目標機代碼,主機編譯工具、模擬環境,下載的代碼包經過解壓後(這里是Android2.2的源碼包),源代碼的第一層目錄結構如下:
|-- Makefile
|-- bionic (bionic C庫)
|-- bootable (啟動引導相關代碼)
|-- build (存放系統編譯規則及generic等基礎開發包配置)
|-- cts (Android兼容性測試套件標准)
|-- dalvik (dalvik JAVA虛擬機)
|-- development (應用程序開發相關)
|-- external (android使用的一些開源的模組)
|-- frameworks (核心框架——java及C++語言)
|-- hardware (主要保護硬解適配層HAL代碼)
|-- libcore
|-- ndk
|-- device
|-- out (編譯完成後的代碼輸出與此目錄)
|-- packages (應用程序包)
|-- prebuilt (x86和arm架構下預編譯的一些資源)
|-- sdk (sdk及模擬器)
|-- system (文件系統庫、應用及組件——C語言)
`-- vendor (廠商定製代碼)
bionic 目錄
|-- libc (C庫)
| |-- arch-arm (ARM架構,包含系統調用匯編實現)
| |-- arch-x86 (x86架構,包含系統調用匯編實現)
| |-- bionic (由C實現的功能,架構無關)
| |-- docs (文檔)
| |-- include (頭文件)
| |-- inet
| |-- kernel (Linux內核中的一些頭文件)
| |-- netbsd (?netbsd系統相關,具體作用不明)
| |-- private (?一些私有的頭文件)
| |-- stdio (stdio實現)
| |-- stdlib (stdlib實現)
| |-- string (string函數實現)
| |-- tools (幾個工具)
| |-- tzcode (時區相關代碼)
| |-- unistd (unistd實現)
| `-- zoneinfo (時區信息)
|-- libdl (libdl實現,dl是動態鏈接,提供訪問動態鏈接庫的功能)
|-- libm (libm數學庫的實現,)
| |-- alpha (apaha架構)
| |-- amd64 (amd64架構)
| |-- arm (arm架構)
| |-- bsdsrc (?bsd的源碼)
| |-- i386 (i386架構)
| |-- i387 (i387架構?)
| |-- ia64 (ia64架構)
| |-- include (頭文件)
| |-- man (數學函數,後綴名為.3,一些為freeBSD的庫文件)
| |-- powerpc (powerpc架構)
| |-- sparc64 (sparc64架構)
| `-- src (源代碼)
|-- libstdc++ (libstdc++ C++實現庫)
| |-- include (頭文件)
| `-- src (源碼)
|-- libthread_db (多線程程序的調試器庫)
| `-- include (頭文件)
`-- linker (動態鏈接器)
`-- arch (支持arm和x86兩種架構)
bootable 目錄
|-- bootloader (適合各種bootloader的通用代碼)
| `-- legacy (估計不能直接使用,可以參考)
| |-- arch_armv6 (V6架構,幾個簡單的匯編文件)
| |-- arch_msm7k (高通7k處理器架構的幾個基本驅動)
| |-- include (通用頭文件和高通7k架構頭文件)
| |-- libboot (啟動庫,都寫得很簡單)
| |-- libc (一些常用的c函數)
| |-- nandwrite (nandwirte函數實現)
| `-- usbloader (usbloader實現)
|-- diskinstaller (android鏡像打包器,x86可生產iso)
`-- recovery (系統恢復相關)
|-- edify (升級腳本使用的edify腳本語言)
|-- etc (init.rc恢復腳本)
|-- minui (一個簡單的UI)
|-- minzip (一個簡單的壓縮工具)
|-- mttils (mtd工具)
|-- res (資源)
| `-- images (一些圖片)
|-- tools (工具)
| `-- ota (OTA Over The Air Updates升級工具)
`-- updater (升級器)
build目錄
|-- core (核心編譯規則)
|-- history (歷史記錄)
|-- libs
| `-- host (主機端庫,有android 「cp」功能替換)
|-- target (目標機編譯對象)
| |-- board (開發平台)
| | |-- emulator (模擬器)
| | |-- generic (通用)
| | |-- idea6410 (自己添加的)
| | `-- sim (最簡單)
| `-- proct (開發平台對應的編譯規則)
| `-- security (密鑰相關)
`-- tools (編譯中主機使用的工具及腳本)
|-- acp (Android "acp" Command)
|-- apicheck (api檢查工具)
|-- applypatch (補丁工具)
|-- apriori (預鏈接工具)
|-- atree (tree工具)
|-- bin2asm (bin轉換為asm工具)
|-- check_prereq (檢查編譯時間戳工具)
|-- dexpreopt (模擬器相關工具,具體功能不明)
|-- droiddoc (?作用不明,java語言,網上有人說和JDK5有關)
|-- fs_config (This program takes a list of files and directories)
|-- fs_get_stats (獲取文件系統狀態)
|-- iself (判斷是否ELF格式)
|-- isprelinked (判斷是否prelinked)
|-- kcm (按鍵相關)
|-- lsd (List symbol dependencies)
|-- releasetools (生成鏡像的工具及腳本)
|-- rgb2565 (rgb轉換為565)
|-- signapk (apk簽名工具)
|-- soslim (strip工具)
`-- zipalign (zip archive alignment tool)
Ⅵ android的jdk相關源代碼是在哪個目錄下的
Android 使用的Java 庫是Apache的Harmony, 與官方Java庫介面相同,裡面實現不一樣。
就在06年的時候Sun公司宣布會將JDK開源,但是直到2009年4月才正式發布,而Android已經在2008年發布第一步部智能手機了。所以Google最早的時候使用了當時Apache的Java開源實現Harmony項目。
說
到這個Harmony可是大有來頭,2005年的時候Java並不是開源的,當是Apache搞了一個提案,就是Harmony項目,目標是開發出一個獨
立並且與現有 JDK 兼容的 Java SE 實現,它是開源的並且Apache授權對開發者友好,於是得到了飛速發展。
可惜Sun公司一直不承認Harmony,前不久Harmony那一幫人怒了,給Oracle放狠話說再不承認我我就抵制Java7,結果反倒把Google嚇壞了,於是就出現了google宣布切換到openjdk上這條新聞。
Ⅶ 誰有Android系統的源碼
1、通過 ubuntu 軟體中心安裝 wine;
2、通過 ubuntu 軟體中心安裝 winetricks;
3、通過 winetricks 在 shell中輸入: winetricks mfc42
1、通過 wine windows 的方式啟動代理伺服器
2、設置瀏覽器代理伺服器
3、設置shell代理伺服器:
在shell中輸入 sudo gedit /etc/bash.bashrc
在文件 /etc/bash.bashrc 中添加:如下內容
export http_proxy=http://127.0.0.1:8580/export https_proxy=http://127.0.0.1:8580/
通過shell安裝如下的組件:
1、sudo apt-get install bison g++-multilib git gperf libxml2-utils
2、新建一個存放源碼的目錄,如:mkdir ~/andorid/source
3、在源碼目錄中輸入命令:repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
其中: android-4.0.1_r1是android源碼的版本,更多的版本可以通過下面的方式查詢:http://source.android.com/source/build-numbers.html
4、修改source/.repo/manifest/default.xml 文件中的 fetch 的值為:
git://Android.git.linaro.org/
通過如下的指令來設置郵箱和用戶名
git config --global user.name "<your name>" ----修改用戶名git config --global user.email "<your email>" ----修改email
5、在source目錄下輸入指令:repo sync
便開始了代碼的下載
Ⅷ Android源代碼 請問,1,從網上下載的android源碼應該放在SDK哪個目錄下面,以什麼樣的格式
不知道你要把源碼放在SDk中 幹啥用,還有下載好源代碼的SDK啥意思,windows下下載不了源代碼,要在windows上裝個cygwin或者在虛擬機里裝個ubuntu
Ⅸ android源碼在哪個文件夾下
android的源碼首先需要你從Android SDK Manager裡面下載,然後在你的sdk中才看得到。
如下圖,找到對應的source for Android sdk項,選中然後下載:
Ⅹ 最近下載android4.3的源代碼,可是找不到kernel那部分代碼在什麼目錄下
你從哪裡怎麼下載的?
注意android4.3有兩種源代碼:
android_sdk中附帶的android API源代碼
和android系統源代碼(這個源代碼超級巨大,目前已知最可靠的方案是使用linux從Google伺服器用特殊軟體下載源代碼……)