『壹』 apk)system/frameworkjavax.obex.jar
framework調試
1.cd framework/base
2.在此目錄下執行 mm
3.adb push out/target/proct/paz00/system/framework/framework.jar system/framework
4.重新運行模擬器,可以看到效果
修改frameworks/policies/base/phone/ 下文件
使用命令make android.policy
在虛擬機system/farmework/下的文件如下,根據修改文件的位置選擇不同的make參數
monkey.jar
framework-tests.jar
am.jar
framework-res.apk
pm.jar
core.jar
input.jar
ime.jar
android.policy.jar
android.test.runner.jar
ext.jar
services.jar
javax.obex.jar
framework.jar
svc.jar
bmgr.jar
修改android system文件夾許可權
具體操作:
lixinso@lixinso-desktop:~$ adb devices
List of devices attached
emulator-5554 device
lixinso@lixinso-desktop:~$ adb shell
# mount
rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0
none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock0 /system yaffs2 ro 0 0
/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0
/dev/block//vold/179:0 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
# mount -o remount /dev/block/mtdblock0 /system
# mount
rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0
none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock0 /system yaffs2 rw 0 0
/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0
/dev/block//vold/179:0 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
#
mount完就可以任意修改刪除拉~~~~
adb push out/target/proct/msm7627_ffa/system/framework/services.jar system/framework/services.jar
[轉]Android 重新編譯資源文件
在開發過程中,尤其是Framework相關開發時,有時候需要重新編譯資源文件.編譯順序和注意事項如下:
1,資源文件位置:frameworks/base/core/res
2,編譯後生成的文件:framework-res.apk 另外com.android.internal.R會更新這個R.java所在目錄為/out/target/common/R/com/android /internal.
3,編譯資源後,必須重新編譯framework.jar.
4,如果在frameworks/base/core/res執行mm是並不重新編譯,請使用toutch ### 命令
###代表目錄下的一個文件.
5,資源文件要小寫.
6,如果沒有必要,不要編譯資源文件,可以用其他方式使用資源,比如將資源使用adb push 傳到某個目
錄,程序中直接指定具體目錄.我在編譯資源過程中遇到一些奇怪的問題,比如有時候許多圖標會顯
示錯誤,原因猜測跟重新編譯資源有關,可以試著重新編譯services.jar並替換看看.
舉一個例子:假如我想在WindowManagerService.java中使用一個圖片資源pic.png.順序如下.
1,將文件pic.png拷貝到位置:frameworks/base/core/res/res/drawable下.
2,在frameworks/base/core/res/res/drawable目錄下執行touch pic.png.
3,進入目錄frameworks/base/core/res/ 執行mm命令, 編譯 framework-res.apk
4,執行完後com.android.internal.R 會新生成一個R.drawable.pic的引用.在程序中使用即可.
5,在目錄frameworks/base/ 下執行mm 編譯 framework.jar.
6,在WindowManagerService.java中使用com.android.internal.R.drawable.pic,使用完後保 存文件.
7,進入目錄frameworks/base/services/java/ 執行mm 編譯 services.jar
8,替換機器上(虛擬機或者真機)的jar apk文件.
adb push framework-res.apk /system/framework/
adb push services.jar /system/framework/
adb push framework.jar /system/framework/
執行命令時注意framework-res.apk 的真實路徑.
9,reboot 機器,查看修改結果.大功告成!
[轉]Android project 的常用編譯方法
0/ 准備工作 (生成mm等命令,具體參考: ~/mydonut/build/envsetup.sh)
$ cd mydonut
$ sh . build/envsetup.sh
1/ 編譯項目 (Package: out/...,鏡像文件路徑:~/mydonut/out/target/proct/generic)
$ make
2/ 創建SDK (Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.<build-id>-x86.zip)
$ make sdk
3/ 創建ADT (Package ADT: ~/mysdk/android-eclipse-<buildnumber>.zip)
$ development/tools/eclipse/scripts/build_server.sh ~/mysdk $USER
4/ 編譯模塊 (訪問模塊對應的目錄,執行mm命令,Package: ~/mydonut/out/target/proct/generic/system/{model-name}/{submodel-name}.**)
$ cd frameworks/
$ mm
該system目錄對應的就是設備/模擬器運行環境對應的system目錄,我 們講新生成的模塊文件(*.so/*.jar/*.apk/...)上傳到運行環境下的對應目錄後,重啟設備生效
如果是應用程序(*.apk),除了Launcher應用需要重啟,其他應用均不需要重啟設備。
下面以更新framework為例,Package: ~/mydonut/out/target/proct/generic/system/framework/framework.jar
4.1 修改framwork程序(~mydonut/framework/...),並訪問framework目錄,執行mm命令,編譯新的 framework.jar程序
$ cd framework
$ mm
其他模塊,如庫文件和應用程序也可以用同樣的方法編譯;應 用程序還可以通過eclipse創建android 應用程序安裝包。
4.2 首先我們運行模擬器(如果是手機,則通過USB連上終端)
$ cd {ANDROID SDK}/tools
$ ./emulator -avd {AVD_NAME}
4.3 然後通過shell命令,設置設備/system目錄的寫許可權
$ ./adb shell
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
# cd /system/bin
# cat sh > su
# chmod 4755 su
# exit
4.4 上傳framework.jar到對應的運行環境目錄
$ ./adb push {MYDONUT_OUT_PATH}/target/proct/generic/system/framework/framework.jar /system/framework
4.5 通過命令,重啟設備,更新生效。
$ ./adb shell
# stop
# start
注意:如果要關掉模擬窗口後 生效,需要通過make命令,編譯最後一次編譯後的改動,生成新的img鏡像文件,並更新到SDK,或生成新的SDK。
附1:命令註解
Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:
- croot: Changes directory to the top of the tree.
- m: Makes from the top of the tree.
- mm: Builds all of the moles in the current directory.
- mmm: Builds all of the moles in the supplied directories.
- cgrep: Greps on all local C/C++ files.
- jgrep: Greps on all local Java files.
- resgrep: Greps on all local res/*.xml files.
- godir: Go to the directory containing a file.
附2:參考文檔
~/mydonut/development/docs/howto_SDK_git_cygwin.txt
~/mydonut/development/docs/howto_build_SDK.txt
~/mydonut/development/docs/howto_use_cupcake_sdk.txt
附3:輸出目錄
~/mydonut/out/target/common/obj/JAVA_LIBRARIES
.jar程序包的完整輸出目錄,含有SDK中標志為@hide的程序和介面, 應用程序中需要這些借口可以引入相關的.jar程序。
~/mydonut/out/host/linux-x86/bin
存放相關的工具tools目錄
附4:創建完整的java項目
$ cp ./development/ide/eclipse/.classpath .
打開Eclipse,新增一個已經創建的java項目,執行mydonut目錄,點擊finish,完成項目的創建,可以查看項目下所有的 java程序。
網址:http://www.blogjava.net/anymobile/articles/296462.html
『貳』 如何更新Android Studio 3.0金絲雀版
androidstudio更新方法為:1.獲取自己電腦上安裝的AndroidStudio的BuildNumber如果已經安裝了AndroidStudio,那麼只需要增量更新即可。所以下載更新jar包即可,首先要知道自己當前的AndroidStudio的版本號。2.查詢目前AndroidStudio的最新版本號是多少(1)訪問網站.intellij.updater.Runnerinstall.即可。
『叄』 如何創建第一個android程序
一、開發環境安裝:1.下載AndroidSDK.2.如果使用Eclipse,請安裝ADT插件。3.下載最新的SDK工具和平台。二、創建Android項目一個android項目包含了程序中用到的所有源代碼文件.使用AndroidSDK工具可以輕松的創建一個包含默認目錄和文件的項目。本節介紹如何使用eclipse或從命令行創建一個項目。CreateaProjectwithEclipse點擊工具中的New.在彈出的窗口中,打開Android目錄,選擇【AndroidApplicationProject】,點擊【next】.Figure1..3.在彈出的窗口,如圖【Figure1】中,填入下列信息:ApplicationName:應用程序名.填入"MyFirstApp."ProjectName:項目目錄名和顯示在Eclipse中的項目文件名。PackageName:程序包的命名空間,與java或c#類似。你的包名應該定義一個唯一的名字,保證與在androi系統中安裝的所有其他包名稱不一樣。因此,強烈建議以組織或公司的域名或發布者名字開頭。在這個項目中,我們使用"com.example.myfirstapp.",但是,你不能發布以"com.example」為命名空間的應用到GooglePlay上。MinimumRequiredSDK:程序支持的android系統的最小版本,如果你想要支持的android設備,需要將這個版本號設置得相對低一點。有過有些功能在低版本上不支持,你可以只在高版本上啟動該功能。在此我們使用默認設置。TargetSDK:當前版本,也是最高版本,當有更高的版本出來時,你應該重新在新的版本上測試你的程序,並修改此參數。CompileWith:你編譯程序時使用的版本。建議使用最新的版本,可通過SDKMANAGER下載。新版本中有新的一些特性,並會根據用戶的使用體驗做一些改進。Theme:AndroidUI樣式。可以按默認設置。點擊Next.在下一個屏幕上使用默認設置,繼續點擊next.下一個屏幕可以設置程序圖標.你可以通過多種方式自定義圖標,系統會自動為你生成各種屏幕尺寸下的圖標。在你發布程序前,請確保你的圖標滿足Iconography設計指南中的說明定義。繼續點擊Next.現在可以選擇一個activity模版.當前項目,我們選擇BlankActivity,然後點擊Next.4.剩下的都按默認設置,點擊Finish.這樣,這個項目就創建完畢了從命令行工具創建項目如果你沒有使用Eclipse,你可以從命令行通過SDK工具創建項目。切換到AndroidSDK目錄,tools/path.執行:androidlisttargets該命令顯示可用的android平台。如果沒有顯示任何列表,請先通過AndroidSDKManager工具進行安裝.參見AddingPlatformsandPackages.執行:androidcreateproject--target--nameMyFirstApp\--path/MyFirstApp--activityMainActivity\--packagecom.example.myfirstapp將修改為上一步驟中顯示的id;將修改為你要保存項目的文件夾。』rereadytobeginbuildingtheapp.Continuetothenextlesson.小貼士:將platform-tools/同tools/目錄一樣加到你的環境變數。這樣,這個項目就創建完畢了.三、運行你的程序你要如何運行你的程序取決於兩件事:是否有真實的android設備;是否使用eclipse.在運行你的程序之前,你需要注意項目中的一些文件夾和文件:AndroidManifest.xmlmanifest文件描述應用程序的一些基礎特性並定義每一個組件。你可以查看項目中的manifest文件,與之前談到的manifest文件的說明對比,即可知道對應的一些元素的設置:src/存放源代碼的目錄.默認情況下,包含一個啟動時用到的Activity類。res/含有多個子文件,用於程序資源的存放。示例目錄如下:drawable-hdpi/包含一些可用於高解析度屏幕的繪圖實體,如圖片。其他類似的目錄包含對應的解析度屏幕下的圖片。layout/程序UI文件。values/包含用於定義諸如字元串、顏色等的xml文件。在真實設備上運行如果你有android系統設備,可以直接在上面安裝你的程序並運行:首先你的設備需要安裝usb驅動。如果你是在window上開發,你可以安裝合適的usb驅動。具體驅動安裝信息可以參考OEMUSBDrivers在設備上啟用USB調試大部分Android3.2或更早的機器,在【設置】-【應用程序】-【開發】中設置。Android4.0和之後的系統,應該是在【設置】-【開發選項】中。Note:OnAndroid4.2andnewer,.Tomakeitavailable,gotoSettings>..運行步驟:打開項目文件,點擊【run】。在彈出的窗口中選擇【AndroidApplication】,然後點擊【OK】Eclipse會自動將程序安裝到你的設備上並運行他。在模擬器上運行在【run】-【runconfiguration】中的【Target】頁面添加和設置模擬器,然後即可運行