1、要弄清楚這個問題,首先需要弄明白什麼是implicit(隱藏) intent什麼是explicit(明確) intent。Explicit Intent明確的指定了要啟動的Acitivity ,比如以下Java代碼: Intent intent= new Intent(this, B.class) Implicit Intent沒有明確的指定要啟動哪個Activity ,而是通過設定一些Intent
最近封裝一些功能性的jar包,因為需要產生一些動作,然後給調用者一些回調,所以用到了事件和監聽器。 舉個例子,比如DragListener和DragEvent,最開始寫的時候,每次Drag動作都觸發一個DragEvent事件,然後就得new一個DragEvent對象。後來感覺這樣太浪費記憶體了,然後就研究了一下系統的MotionEvent這個類,找到了好的解決方案。
SurfaceFlinger對象建立過程示意1 SurfaceSession的建立用戶端請求建立Surface時,首先在要與SurfaceFlinger建立一個Session,然後再Session上建立一個Connection通過概念返回Bclient對象。WindowManagerService在添加第一個視窗前會檢查SurfaceSession是否建立,如何沒有建立,將會建立立一個執行個體來代表與SurfaceFlinger的一個串連。new
共用UID 安裝在裝置中的每一個Android包檔案(.apk)都會被分配到一個屬於自己的統一的Linux使用者ID,並且為它建立一個沙箱,以防止影響其他應用程式(或者其他應用程式影響它)。使用者ID 在應用程式安裝到裝置中時被分配,並且在這個裝置中保持它的永久性。通過Shared User id,擁有同一個User id的多個APK可以配置成運行在同一個進程中.所以預設就是可以互相訪問任意資料. 也可以配置成運行成不同的進程,
如果android的source在android21檔案夾(即Makefile檔案的目錄)下,先執行cd android21,然後可以執行下面的命令;1、make Settings產生Settings.apk的檔案2、 make snod等同於make droid該命令產生一個新的系統映像system.img,速度比make快很多,但不穩定(有的時候不好用)將這個系統映像拷貝至sdk下cp out/target/product/generic/system.img
Android GUI 的更新過程2011-05-25 17:41 From: http://www.linuxgraphics.cn/android/gui_update_flow.html元件圖表相關組件如所示:ViewRoot在private void draw(boolean
1. Android編譯系統分析編譯指令碼及系統變數build/envsetup.sh指令碼分析在編譯原始碼之前通常需要在android原始碼頂層目錄執行 . ./build/envsetup.sh 目的是為了使用指令碼 envsetup.sh 裡面定義了一些函數:function help()function get_abs_build_var()function get_build_var()function check_product()function
Service是Android系統提供的四大組件之一,它的地位和Activity的並列的,只不過沒有Activity的使用頻率高。顧名思義Service就是運行在背景一種服務程式,一般情況下,很少和使用者互動,最大的特點就是沒有可視化介面。
2010-11-13 12:36 511人閱讀 評論(0) 收藏 舉報 圖1 android 的makefile結構 android的編譯檔案主要依賴於mk檔案,其源碼編譯名字是Android.mk,而不我們常見的Makefile檔案。 android目錄下的Makefile檔案,include了build/core目錄下的main.mk檔案。main.mk檔案
今天,我們來研究一下Intent,沒錯,就是前面說過的比較難理解的那個東西,希望通過這篇文章之後,你發現前面那句話其實是不對的。前文中說過,Intent就像Activity之間的雙面膠,就字面意思而言:“意圖, 意向, 目的”, 基本上可以詮釋這個對象的作用。它裡麵包含的就是一些資訊,這些資訊能夠告訴我們當前發生了什麼,以及想要幹什麼。我覺得和前面的事件驅動中的事件非常 像,不同的是,它不僅僅包含事件,還包含一些資料資訊。Intent或者也可以說像一個需求說明一樣,說明了當前的事件以及一些資料,
1、android檔案系統的結構 android源碼編譯後得到system.img,ramdisk.img,userdata.img映像檔案。其中, ramdisk.img是emulator的檔案系統,system.img包括了主要的包、庫等檔案,userdata.img包括了一些使用者資料,emulator載入這3個映像檔案後,會把 system和 userdata分別載入到 ramdisk檔案系統中的system和
文章目錄 使用Eclipse開發平台調試結合Android SDK調試使用JUnit調試
首先下載下android源碼並編譯,網上的資料特別多,可以參考一下這個網站http://blog.csdn.net/liaoshengjiong/archive/2009/03/04/3957749.aspx按照網站上的步驟,將android核心編譯成功,如果不出意外的話,在out/target/product/generic目錄下會產生三個檔案,分別是ramdisk.img、sytem.img、userdata.img。這三個檔案到底有什麼用呢?下面開始分析一下。首先在linux終端下使用命
在out/target/product/generic下產生的三個鏡像檔案:ramdisk.img,system.img,userdata.img以及它們對應的分類樹root,system,data。ramdisk.img是根檔案系統,system.img包括了主要的包、庫等檔案,userdata.img包括了一些使用者資料,android載入這3個映像檔案後,會把 system和 userdata分別載入到 ramdisk檔案系統中的system和 data目錄下。
splash1 :開機畫面,Nandroid備份為splash1.imgrecovery :裝置序號為mtd1,該分區是復原模式(即開機按Home+End進入的介面),Nandroid備份為recovery.imgboot :裝置序號為mtd2,底層作業系統核心開機磁碟分割,掛載 為/目錄,Nandroid備份為boot.imgsystem :裝置序號為mtd3,G1的Android核心平台,掛 載為/system目錄,通常為唯讀,Nandroid備份為system.imgcache
文章目錄 使用SharedPreferences儲存資料檔案儲存體資料網路儲存資料總結說明 在前面的2篇文章:Android SQLite解析、Android
adb登入上去,執行telnetd發現可以執行,說明android系統內建了telnetd但從用戶端串連發現每次介面一閃而過,無法成功登入,懷疑是android內建的telnetd有問題,於是改用busybox的telnetd,發現存在同樣的問題。抓包也沒看出什麼異常錯誤提示,就是每次使用putty登入一閃而過就完了。在網上搜尋了一下,終於找到原因了:因為android系統裡面沒有login程式,所以我們從用戶端登入後系統找不到要啟動的Shell,就直接退出了(telnetd預設執行/bin/l
把busybox移植到android下後想玩玩syslogd,於是先把busybox連結成一個syslogd以方便後續直接敲命令啟動:ln -s busybox syslogdls -llrwxrwxrwx root root 2013-01-06 19:38 syslogd -> busyboxOK,現在可以啟動它了:1|root@android:/data/data/test #
從Java來看我們可以結合Timer,TimerTask,Handler來實現定時重新整理,但是,從Android來說建議用Handler,Runnable。(我們把Timer,TimerTask, Handler的方法以下命名為A方法。 Handler,Runnable命名為B方法)。在這裡說下,實現一個功能有多種方法,每種方法都有自己的特點,所以不必糾結別人實現的比自己好,而放棄自己的東西。功能實現必須從無到有,慢慢最佳化,取人之長補己之短。才能慢慢進步。(呵呵扯淡..)。在Android
android中藍牙裝置按鍵的監聽和一般的系統按鍵監聽相同,只不過是處理不同的KeyEvent,這裡說下藍芽發出的上一首,下一首的KeyEvent的值,監聽到並做相應的處理即可。 public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_MEDIA_NEXT:// 下一首 // 實現下一首對應的介面