Android上為了讓視頻顯示的更流暢,自然要使用到NDK, 沒有採用YUV420 overlay的方式, 而採用平台移植更安全的RGB565顯示。 在android 2.3上測試通過。 但到了MTK andriod平台(A301)遇到glTexImage2D gl_error 0x501的錯誤(源映像為176*144)。 經過反覆測試, 這個mtk andriod版本支援opengl es,
1) 在JAVA層重新整理: 如果要在thread裡重新整理, 要使用postInvalidate, 如果在timer裡重新整理, 可以通過Handler Message來重新整理。 具體重新整理要重寫onDraw函數。 2) 在JNI裡重新整理: 將SurfaceHolder指標傳遞給NDK(JNI層用VideoDriver_register註冊)。 具體重新整理用以下方法:void * pbits;VideoDriver_getPixels(width, height,
MoviGuard準備發布, 支援rtsp/rtp協議, mpeg4-sp視頻編碼,支援即時視頻觀看,拍照錄影,連接點管理等功能。 後續可支援音頻擴充成手機電視等其他應用。 不用MediaPlayer, 自己實現網路下載和視頻解碼。 對於有C++經驗的同學來說,開發android程式不是件困難的事情。 而越來越成熟的NDK也讓C/C++程式員感覺輕鬆。 總結之前android開發過程中的一點感想: 1) 如果JAVA效能夠用就別用NDK。 C庫不成熟穩定的話,
最近將視頻用戶端移植到了ANDROID平台。 分享一下開發心得。 類似HTTP LIVE STREAMING的流式下載方式, 但APPLE的TS格式冗餘資料太多, 我用的是私人格式,更加節省頻寬資源。H264+AMRNB編碼。每個分區檔案20秒。整體架構如:作為HTTP下載模組對穩定性要求比較高,用NDK的話debug會很麻煩,JAVA層下載效率也還行,所以採用JAVA層的HttpURLConnection類, 伺服器端在Response
Context menu預設要long click才會觸發。 以下方法使單擊也能觸發public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){//添加功能表項目menu.add(Menu.NONE, ITEM_MENU_PREVIEW, 0,"查看");menu.add(Menu.NONE, ITEM_MENU_SAVE2ALBUM,
轉自: http://www.cnblogs.com/mcodec/articles/2122675.htmlAndroid中音訊輸出有兩種方式,一種是在java層用Audiotrack類輸出。但是通常情況下,音頻是在jni層解碼,如果再回傳給java層輸出,那麼程式效率較低。另一種是在jni層直接輸出,省掉回傳java層的步驟,程式效率較高。 本範例程式碼示範了在jni層直接輸出音訊方案,音頻源為sdcard上的wav檔案。實際使用時,把壓縮包中的test.wav檔案push到模擬器sdcar
轉自:http://www.cnblogs.com/mcodec/articles/2122673.htmlAndroid中視頻輸出有兩種方式,一種是在java層用bmp序列函數輸出。但是通常情況下,視頻是在jni層解碼,如果再回傳給java層輸出,那麼程式效率較低。另一種是在jni層直接輸出,省掉回傳java層的步驟,程式效率較高。 本範例程式碼示範了在jni層直接輸出視頻的方案,採用讀sdcard上的bmp位元影像類比解碼後的視頻。實際使用時,把壓縮包中的400x512_565.bmp檔案p
原文http://www.developer.com/ws/10-must-have-android-tools-for-developers.html ByLauren Darcey & Shane Conder Android SDK有一套強大的工具協助開發人員設計,開發,測試和發布高品質的Android應用程式。在這篇文章中,討論了10個最常見的工具,android 開發人員應該瞭解和學習使用。 Android的工具#1:Eclipse的W
原文地址:http://www.developer.com/ws/android/programming/the-10-rookie-mistakes-every-android-developer-should-avoid.html 6,把prototype作為一個Android應用程式的基礎直接開發太多次了,我們已經看到一個應用程式,基本上是一個Hello
作者: Android開發網原創 時間: 2011-10-09對於GoogleAndroid 4.0 Ice Cream SandWich和微軟WP7.5 Mango在開發技術上作對比,可以看出早期Google學習了Microsoft的WPF的設計方式,由於微軟Windows Phone
原文http://www.developer.com/ws/10-must-have-android-tools-for-developers.html ByLauren Darcey & Shane Conder Android的工具#6:LogCatLogCat是Android日誌系統的名稱。
眾所周知,Android 是基於Linux核心的,所以直接支援Linux的WLAN介面。WLAN的核心驅動是根據使用者在UI上的設定動態載入的,通過ctrl_interface和openssl來實現WLAN的控制和安全性,TCPIP則基於WLAN的標準實現。WLAN 在Android上的體系構架如下:Application Framework : base/wifi/java/android/net/wifi
轉寄地址:http://mobile.51cto.com/ahot-364267.htm本文將Android平台上的各類惡意軟體和病毒分為7大類進行概述,以協助使用者在實際使用過程中進行識別和警惕,保證平台和個人資訊、經濟安全。 隨著移動互連網的發展,作為當今最大的移動作業系統之一,Android已經被越來越多的使用者所使用。然而由於市場自身制度的不完善以及弊端,Android市場內應用的品質低下以及垃圾軟體、惡意軟體的泛濫為使用者帶來了非常大的危害。使用者面臨著極大的移動終端安全問題,內建病毒
原文地址:http://www.developer.com/ws/android/programming/the-10-rookie-mistakes-every-android-developer-should-avoid.html在過去十年中最流行的行動裝置
講講編譯的步驟:1. 安裝cygwin 必須是1.7或者更新的版本 安裝cygwin的時候,選擇安裝gcc和make,目的是為了提供編譯環境, make的版本至少是3.812.安裝ndk 2.1 下載ndk-r4b-windows,並將其放到cygwin的/home/Administator目錄 設定環境變數 將/etc/skel/目錄的 .bash_profile .bashrc .inputrc拷貝到/home/administrator目錄,
前言: 隨著3G的到來,頻寬大了流量費便宜了,手機電視等多媒體應用必將有很大發展, 本人總結以往經驗,跟大家討論一下如何建立一個手機ApsaraVideo for VOD的方案,最後給出了一個初步的用戶端實現效果。歡迎大家討論。 先說架構,出於便於管理和擴充,頻寬節流設定和多使用者並發的考慮,商用方案都會採用流媒體伺服器+WEB伺服器+代理服務器+手機用戶端的方案,其中流媒體伺服器(streaming server)負責採集視頻源並壓縮編碼並隨時等待來自用戶端的rtsp串連請求;
官方意見:1) apache httpclient高效穩定,但是維護成本高昂,故android Team Dev不願意在維護該庫而是轉投更為輕便的httpurlconnection;2) httpurlconnection比較輕便,靈活和易於擴充,它在2.2前存在這樣一個BUG,詳見http://code.google.com/p/android/issues/detail?id=2939 private void disableConnectionReuseIfNecessary() {
Android應用程式的記憶體被限定在16MB,至少在G1手機上是這樣。對於一個手機來說,這已經佔用了非常多的記憶體了,但是對於開發人員想要實現的目標而言,這些記憶體是非常少的。即時你本來就沒打算用掉所有的記憶體,但是你應該儘可能的少用記憶體,來讓其他程式可以保持運行,而不是被系統殺掉。系統在記憶體裡儲存的應用程式越多,使用者在應用程式之間選擇切換的速度就會越快。作為我工作的一部分,我跟蹤了Android應用程式記憶體泄露的情況,發現它們大多數是因為同一個問題:保持了對Context對象的長期的
看到不少人在建立android工程之後,又在上面做了不少功夫,封裝之後再封裝。或許是為了實現他們永遠無法拋棄的"MVC"模式,又或者是離不開所謂的“內褲(類庫)”王子的夢想,抑或是抱著創新搏人眼球。總之,這夥兄弟無所不用奇蹟。回過頭來,我們試想一下,framework的核心作用什麼呢--避免重複製造輪子。假設當初這些套件不是用“JAVA+大量的設計模式”,而是採用C/C++,現在的android應該是另外一番風景了。既然,Google的兄弟們,已經給我們造好了輪子了,如果我們所做再封裝僅僅是為了
定期更新的最佳頻率將取決於裝置的狀態,網路連接,使用者的行為和明確的使用者喜好。最佳化電池壽命,討論了如何通過在基於主機裝置的狀態來修改其重新整理頻率,打造高效電池的應用程式。包括當你失去串連後禁用後台服務更新以及在電池電量低的時候減少更新的速度。在這裡會介紹更新頻率是多少才會使得更新操作對無線電狀態機器的影響最小。利用推送資訊來替換電子郵件服務每次app去向server詢問檢查是否有更新操作的時候會啟用無線電,這樣造成了不必要的能量消耗(在3G情況下,會差不多消耗20秒的能量)。C2DM是一個