Time of Update: 2018-12-03
1、不同的layout Android手機螢幕大小不一,有480x320,640x360,800x480.怎樣才能讓App自動適應不同的螢幕呢? 其實很簡單,只需要在res目錄下建立不同的layout檔案夾,比如:layout-640x360,layout-800x480,所有的layout檔案在編譯之後都會寫入R.java裡,而系統會根據螢幕的大小自己選擇合適的layout進行使用。2、hdpi、mdpi、ldpi
Time of Update: 2018-12-03
以前寫 android ,對事件的處理沒有太深入,只是簡單的 onTouchEvent 就 ok 了,現在寫的 UI ,很多自訂群組件,父 view 和子view 都需要接收事件,然後處理。如果不弄明白它的事件傳遞機制,很難擁有好的使用者體驗。Touchevent 中,傳回值是 true ,則說明消耗掉了這個事件,傳回值是 false ,則沒有消耗掉,會繼續傳遞下去,這個是最基本的。在 View 中跟 Touch 相關的事件有 dispatchTouchEvent ,
Time of Update: 2018-12-03
Android 程式擷取、設定鈴聲和音量 通過程式擷取android系統手機的鈴聲和音量。同樣,設定鈴聲和音量的方法也很簡單! AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); //通話音量 int max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL ); int current =
Time of Update: 2018-12-03
AudioTrack音軌建立:AudioTrack::createTrack1)AudioSystem::get_audio_flinger2)AudioSystem::getOutputSamplingRate3)AudioSystem::getOutputFrameCount4)AudioSystem::getOutputLatency5)audioFlinger->createTrack調用audioFlinger的方法6)sp<IMemory> cblk = track
Time of Update: 2018-12-03
1、調用main函數在gingerbread/bootable/recovery/recovery.c最下面有個main(),這是recovery應用的主入口,當編譯recovery的時候,會產生一個名為recovery的可執行檔,我這邊是放在out/目錄下recovery/檔案系統的/sbin目錄下,調用recovery可執行檔時會傳入參數,這些參數就是main函數的參數,如下intmain(int argc, char **argv){ char tmp[4]; time_t
Time of Update: 2018-12-03
很多Android開發者已經度過了初級、中級,如何成為一個Android高手呢? Android123就各個層級的程式員應該掌握哪些內容作為下面分類。 一、初級 1. 擁有嫻熟的Java基礎,理解設計模式,比如OOP語言的原廠模式要懂得。 2. 掌握Android UI控制項、Android Java層API相關使用。 邁向中級,最好再次更新下Java技術,掌握Java concurrent庫、nio庫,精通xml、json解析,做過socket c/s端的程式。 二、中級
Time of Update: 2018-12-03
Time of Update: 2018-12-03
田海立2013-08-10Android封裝的同步類主要有MUTEX(AutoMutex)與Condition。前文分析了它們的外部使用,本文看它們是如何通過對pthread Mutex和Condition的封裝實現的。遇到pthread的用法,可結合《pthread之MUTEX與Condition用法》一起看。Keywords: Mutex, Condition Variable, AutoLock/AutoMutex,
Time of Update: 2018-12-03
摘要:android系統的待機,是在linux原生待機enter_state的基礎上,添加wakelock-wakeunlock機制,對象情境是增加對屏滅但系統仍後台運行得支援。linux原生待機我們是linux開發人員,用code溝通最直接吧。在linux-2.6.32以後,/sys/power節點下,建立state節點,在檔案系統調用上,write此節點,將會調用state_store函數,read此節點,將會調用state_show函數。#define power_attr(_name)
Time of Update: 2018-12-03
田海立@CSDN2012-8-22 本文結合AppWidget的應用情境,分析Android中RemoteViews的內部具體實現。從前文《Android中AppWidget的分析與應用:AppWidgetProvider》和《Android中Launcher對於AppWidget的處理的分析:AppWidgetHost角色》中得知,Android中AppWidget的圖形資源是由AppWidgetProvider通過RemoteViews提供的;而顯示是由AppWidgetHost通過AppW
Time of Update: 2018-12-03
關於android系統開發sdcard移植,主要有如下工作:1,核心驅動開發,完成後每次插入和拔出sdcard系統都會有相關的資訊顯示,而且sdcard可以手動掛載。2,android的sdcard掛載主要是vold來完成,vold的原始碼在/system/vold目錄下,編譯成/system/bin/voldinit.rc檔案中有vold系統服務,確保android系統開機後vold有正常運行。3,添加vold的設定檔,先查看/system/bin/vold/main.cpp檔案中的proce
Time of Update: 2018-12-03
// 根據ID獲得連絡人資訊實體 private static EnContactBackUp getEnContactBackUp(String id) { ContentResolver resolver = acApplication.getInstance() .getContentResolver(); EnContactBackUp contact = new EnContactBackUp(); contact.setId(id); String value =
Time of Update: 2018-12-03
田海立@CSDN 2012-1-19 Android不同平台在編譯時間,用到的jdk的版本不同,比如:Froyo(2.2)及其以前版本需要jdk5.0;Gingerbread及其之後版本需要jdk6.0。如果在一個環境中要做不同平台項目,就需要安裝不同的jdk,切換項目時要反覆安裝jdk,費時費力。Update-alternatives為這種情況提供瞭解決方案。 本文只是針對《Ubuntu10.10下編譯Android2.2平台》的補充,是筆者在編譯Gingerbread時的解決方案。 1.3.
Time of Update: 2018-12-03
安裝Android SDK的時候,會看到錯誤提示“Java SE Development (JDK) not found”,但是明明已經安裝了好幾遍JDK了!!這是在64bit
Time of Update: 2018-12-03
解析Android訊息處理機制——Handler/Thread/Looper & MessageQueue 田海立@CSDN2011/07/12 Keywords: Android Message HandlerThread Looper UML 本文解析Android如何利用Handler/Thread/Looper以及MessageQueue來實現訊息機制的內部實現。知道了它的內部實現機理之後,以後再遇到使用它們時候的任何問題就駕輕就熟、迎刃而解了。
Time of Update: 2018-12-03
在網上看到一篇關於apk連網升級的博文,講解的比較細緻入理,遂錄在這裡備用。流程圖是:
Time of Update: 2018-12-03
自己的安卓平台在客戶處測試時,有反饋Network Signal Info 這個apk無法安裝,提示缺少共用庫。通過在網上搜尋,確認是少了GMS包的緣故。也就是得自己把add
Time of Update: 2018-12-03
Android 休眠(suspend),在一個打過android補丁的核心中,state_store()函數會走另外一條路,會進入到request_suspend_state()中,這個檔案在earlysuspend.c中。這些功能都是android系統加的,後面會對earlysuspend和late resume 進行介紹。涉及到的檔案:linux_source/kernel/power/main.c
Time of Update: 2018-12-03
Time of Update: 2018-12-03
這裡記錄一種在普通的LINUX或安卓智能手機平台上,用快捷的方法測試MODEM模組的驅動是否正常工作。需要注意的是:程式的運行依賴於交叉編譯器版本,必須是帶串口操作庫函數的編譯器,比如2008q3。編譯完成後執行,即可顯示一系列待輸入選項,進行測試專案。(1)主函數// this is a test about GPRS#include <stdio.h>#include <string.h>#include