Time of Update: 2018-12-03
由於通過google git提取的android原始碼沒有配置分布式編譯,需要藉助一些工具搭建一個分布式編譯環境來提升android編譯速度,下面的步驟是在centos 5.2上進行的,我們可以參考一下。1) 安裝distcc RPM包rpm –ivh distcc-2.18.3-2.el5.rf.i386.rpmrpm –ivh distcc-server-2.18.3-2.el5.rf.i386.rpm2) 讓系統啟動時預設載入distccd服務進程 shell->setup-&
Time of Update: 2018-12-03
Android的硬體抽象層,簡單來說,就是對Linux核心驅動程式的封裝,向上提供介面,屏蔽低層的實現細節。也就是說,把對硬體的支援分成了兩層,一層放在使用者空間(User Space),一層放在核心空間(Kernel
Time of Update: 2018-12-03
很多人使用startActivity時候,會碰到如下異常:Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you
Time of Update: 2018-12-03
本開源Android播放器基於ffmpeg開發,音視頻在jni層直接輸出,不使用java層的bmp和audiotrack輸出,支援arm彙編加速,超級精簡。本開原始碼播放器使用的音視頻解碼代碼來源於ffmpeg-0.6.3(http://www.ffmpeg.org),jni銜接代碼和java層代碼來源於havlenapetr(https://github.com/havlenapetr/FFMpeg)。移植ffmpeg到android的常規關鍵點網上有很多的文章可以參考,也可以用檔案夾比較工具
Time of Update: 2018-12-03
出發點: 開源的acra crash上報庫(http://code.google.com/p/acra/)的缺點有: 1. crash上報到google doc裡的話,由於被牆了,所以看不到資料。 2 如果基於郵件上報crash的話,不方便統計crash崩潰率。3. acra上報的欄位過多,需要過濾一些沒用的欄位。目的:當Android應用程式崩潰時,可以及時通過瀏覽器查看到崩潰的堆棧資訊,同時後台還可以統計每天的崩潰比率,以方便應用程式的體驗改進實踐過程:1. 首先下載acra的源碼svn
Time of Update: 2018-12-03
Android應用開發一般會把UI和資料分離,分為應用側(關注的是整個應用的效能),UI側(主要是介面展現) 資料邏輯側(主要是和後台互動的API封裝),如果是視頻類應用的話,android內建的播放器缺點明顯,需要實現軟解和硬解的結合。應用側1 視頻內容的補充2.
Time of Update: 2018-12-03
要解析Android手機上電視直播協議,可以通過工具抓包查看現有的直播應用,如鳳凰衛視,手機電視,主要的方法有:1. 在Android 類比上安裝直播應用,通過wireshark工具抓包查看都是基於什麼協議,如RTSP/HTTP優點:在windows下通過有介面的wireshark抓包工具較容易操作缺點:
Time of Update: 2018-12-03
出發點:Android系統本身是支援多種解析度的,1所示,一般情況下要適配不同尺寸的裝置只需要做兩件事,1. 根據4種不同的螢幕尺寸提供4套UI布局(layout)。 2. 根據4種不同螢幕像素密度(單位英寸的像素值)提供4套介面元素的圖片。圖1 Android螢幕分類而實際應用合并過程中存在的問題是:同一個應用對應的手機和平板介面設計是完全不一樣的,如何根據螢幕的大小來決定提供哪一套介面是一件很頭疼的事情。 目的:根據解析度來區分手機和平板的不合理性在於:1.
Time of Update: 2018-12-03
在大家的支援和鼓勵下,《Android系統原始碼情景分析》一書得以出版了,老羅在此首先謝過大家了。本書的內容來源於部落格的文章,經過大半年的整理之後,形成了初稿。在正式出版之前,又經過了三次排版以及修訂,最終得到終稿。然而,老羅深知,書中的內容並不盡完美,除了錯誤之外總還會有許多不盡人意的地方,因此,歡迎廣大讀者以及國內外的專家給老羅指出,以便改進。為了達到此目的,老羅特別在此列出該書有錯誤的地方。 現在暫時將書中出現的錯誤劃分為三類,第一類是筆誤,第二類是表達問題,
Time of Update: 2018-12-03
Time of Update: 2018-12-03
在Android系統中,每一個應用程式都是由一些Activity和Service組成的,一般Service運行在獨立的進程中,而Activity有可能運行在同一個進程中,也有可能運行在不同的進程中。那麼,不在同一個進程的Activity或者Service是如何通訊的呢?這就是本文中要介紹的Binder處理序間通訊機制了。
Time of Update: 2018-12-03
1、Android反編譯 1)下載兩個工具 dex2jar,jar2java 2)修改apk尾碼為.zip,解壓得classes.dex 3)用dex2jar.bat開啟classes.dex得到classes.dex.dex2jar.jar
Time of Update: 2018-12-03
第一步:使用java.net的URLConnection對象來建立串連第二步:通過InputStream將下載的檔案寫入儲存卡內緩衝第三步:下載完畢之後,通過自訂的openFile()方法開啟檔案,判斷檔案類型,若為APK,開始安裝第四步:準備離開Installer程式的同時,通過自製的delFile()方法,刪除緩衝內檔案/** * 遠程下載安裝Android程式 * * @ClassName InstallOnlineActivity * @author Jet * @date 2012-
Time of Update: 2018-12-03
第一步:構造Geocoder API
Time of Update: 2018-12-03
今天終於在Android上成功調用了基於RTSP的網路程式庫介面,經過N長時間的糾結,終於完成了!我的Android NDK版本是NDK r5b,系統是ubuntu10.04首先,Android中的C++引用stl庫1 在需要調用模板庫的檔案前包含標頭檔: #include <iostream> #include <vector> 此時編譯可能不過,需要在Android.mk檔案內添加: LOCAL_C_INCLUDES :=
Time of Update: 2018-12-03
最近一直在做Android上多媒體的開發,主要涉及到Android媒體框層,開始是移植live555和ffmpeg到Android上,改進Android多媒體架構Open Core的不足附上Android體系架構圖:開始是移植出現各種錯誤,各種找資料,最後在Android上成功移植上了live555和ffmpeg,最近也忙於整合測試,沒時間寫寫心得!前幾天在測試在Android上調用live555中的庫,寫了測試工程,其中jni中的Android.mk檔案如下:LOCAL_PATH :=
Time of Update: 2018-12-03
想要做Android嵌入式開發,你可以看看下面的內容參考文檔:http://blog.csdn.net/zkycdy/article/details/8296384一:首先你必須瞭解ARM平台 Android 移植與驅動核心開發,當然也可以是X86和其他的平台,不過其他平台的Android智能終端開發並不是很多。 Android嵌入式智能作業系統是基於Linux核心和驅動的,對於HTC、華為等公司開發Android作業系統時,需要專門將Android移植到
Time of Update: 2018-12-03
最近在做Android 上多媒體的開發,首先是需要在Android移植ffmpeg,結果在網上找了很長時間的文章,哎,還是各種失敗,產生的庫檔案只有1.6k大小,這可急壞了我,還是網上各種度狗最後在我的系統ubuntu 10.04,Android NDK 是Android NDK r5b,成功編譯出了1.9M大小的libffmpeg.so檔案,最近有空還是決定把編譯曆程寫下來,給那些碰到同樣問題的網友一個很好的參考! 開始我是參考這篇文檔做的移植,我在虛擬機器中重裝了一個ubuntu
Time of Update: 2018-12-03
最近在做Android上的多媒體開發,通過JNI介面調用各種底層庫,例如:lib***.so 如下所示,總是載入不成功。調試發現,每次載入so庫,會跳到catch異常處理部分,然後列印異常log資訊。 1.static{ 2. try{ 3. System.load("/data/data/com.***/lib/lib***.so"); 4. } 5. catch(UnsatisfiedLinkError ulink){ 6.
Time of Update: 2018-12-03
// Android 通過XML自訂Menu ,擷取MenuInflater來構造Menuimport android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.widget.LinearLayout;import