Time of Update: 2018-12-05
1. 下載ndk 解壓2.安裝cywin:http://cygwin.com/cygwin是一個linux類比環境,android ndk開發目前不支援在windwos下直接編譯c語言檔案,本身android是一個基於linux核心的系統。具體安裝過程參考cygwin文檔。在這裡必須安裝的組件GUN MAKE
Time of Update: 2018-12-05
首先需要強調一點的是wifi只能在真機上測試!在Android裡,所有的wifi操作都在android.net.wifi包裡,而常用的類也就只用幾個,對於一般的開發人員來說,常用的操作也是有限的,不需要刻意的去記,用的時候現查就ok了,下面是《Android應用開發揭秘》裡面關於wifi的範例,個人感覺還挺齊全,跟大家分享一下! package com.yarin.android.Examples_08_08;import java.util.List;import
Time of Update: 2018-12-05
下面是架構簡圖:首先調用mediaRecorder.java中的方法比如start方法,會調用jni:也就是調用android_media_recorder.cpp的start方法: 接著到mediaRecorder.cpp,mediaRecorder是由mediaplayerService建立的,而mediaRecoder.cpp和mediaplayerService是通過binder機制來進行進程間的通訊的,這時client端就是通過操作服務端返回的imediaRecorder來對服務端進行
Time of Update: 2018-12-05
SharedPreferences是以索引值對來儲存應用程式的配置資訊的一種方式,它只能儲存基礎資料型別 (Elementary Data Type)。一個程式的設定檔僅可以在本應用程式中使用,或者說只能在同一個包內使用,不能在不同的包之間使用。 實際上SharedPreferences是採用了XML格式將資料存放區到裝置中,在DDMS中的File Explorer中的/data/data/<package name>/shares_prefs下。
Time of Update: 2018-12-05
這裡有個setupVideiEncoder,看來這裡應該是對視頻編碼的地方 根據不同的編碼類別型來設定不同的參數,這個方法代碼有些多直截取部分代碼:來看看關鍵的一句,這裡建立了OMXCodec 然後把建立了的編碼器賦值給MediaSource,這裡的MediaSource可以看作是OMXCodec的封裝,這樣編碼器的準備工作就已經做好了:接著我們回到startMPEG4Recording() 方法,可以看到這裡在對解碼器進行準備之後,建立了metadata,然後調用setupMPEG4MetaD
Time of Update: 2018-12-05
大家好,今天我們要講的是android開發中,比較常用的名令集錦, 在我們開發中難免用到Android命令,有些確實命令確實很有用處。 特別對於一些初學者來說,命令根本沒有想過用也不會用,比如他們想安裝一個.apk檔案到模擬器上面,但是他們不會啟動模擬器,他們只會先啟動Eclipse,然後在啟動模擬器,這樣不但浪費時間,而且Eclipse又佔用你的記憶體。這也是我為什麼總結這篇文章的原因了,希望對大家有所協助。
Time of Update: 2018-12-05
view plaincopy to clipboardprint?<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android">
Time of Update: 2018-12-05
發布時間:2010-08-19 作者:Android開發網原創 Android軟體一般處理大的資源通過sdcard比如線上下載資源到sdcard,而apk中內嵌資源或二進位檔案時一般使用下面的兩種方法: 方法一 res/raw目錄下存放,比如cwj.dat一個二進位檔案,我們可以讀取可以直接 InputStream is=context.getResources().openRawResource(R.raw.cwj);
Time of Update: 2018-12-05
在Android應用裡,最耗費記憶體的就是圖片資源。而且在Android系統中,讀取位元影像Bitmap時,分給虛擬機器中的圖片的堆棧大小隻有8M,如果超出了,就會出現OutOfMemory異常。所以,對於圖片的記憶體最佳化,是Android應用開發中比較重要的內容。 1)
Time of Update: 2018-12-05
大家好我們今天的教程是在Android 教程中自訂View 的學習,對於初學著來說,他們習慣了Android 傳統的頁面配置方式,如下代碼: view plaincopy to clipboardprint?<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
Time of Update: 2018-12-05
當我們做android用戶端產品的時候為了讓使用者有更好的體驗,我們需要攔截系統的異常彈出事件,並且將這些異常以比較“優雅”的方式反饋給使用者,當然我們還要把這些異常提交到伺服器上以便於程式員分析產生這些異常的原因,更好的維護和晚上這個android用戶端產品.首先在我們的application的oncreat()方法加入以下代碼: MobclickAgent.onError(context); CrashHandler crashHandler =
Time of Update: 2018-12-05
第一步:啟動linux1.Bootloader2.Kernel第二步 android系統啟動:入口為init.rc(system\core\rootdir)1./system/bin/service manager: Binder 守護進程;2.Runtime;3.Zygote :app-process/app-main;4.Start VM;5.Start server6.Start android service:Register to service Manager7.Start Laun
Time of Update: 2018-12-05
大家好我們這一節講的是Android Handler的使用,在講Handler之前,我們先提個小問題,就是如何讓程式5秒鐘更新一下Title.首先我們看一下習慣了Java編程的人,在不知道Handler的用法之前是怎麼樣寫的程式,代碼如下所示: view plaincopy to clipboardprint?package com.android.tutor; import java.util.Timer; import java.util.TimerTask;
Time of Update: 2018-12-05
當啟動一個Service時,他預設都是運行在主線程的,如果Service將要運行非常耗時或者可能被阻塞的操作時,應用程式將會被掛起,甚至會出現ANR錯誤。為了避免這一問題,應該在Service中重新啟動一個新的線程來進行這些操作。但有一個更好的方法那就是用IntentService
Time of Update: 2018-12-05
大家好,我們這一節講的是Android PopupWindow的使用! 在我理解其實PopupWindow其實類似於一個不能動的Widget(僅從顯示效果來說!)它是浮在別的視窗之上的.下面我將給大家做一個簡單的Demo,類似於音樂播放器的Widget的效果,點擊Button的時候出來PopupWindow,首先我們看一下:下面是核心代碼: view plaincopy to clipboardprint?package com.android.tutor;
Time of Update: 2018-12-05
Android裡的SoundPool類是 android.media 包裡提供的一個用來播放音效檔的類,可以支援同時播放多個音效檔,可以控制每個檔案的迴圈次數。基本上要遵守下面的步驟: 1 實現 SoundPool.OnLoadCompleteListener 介面的 onLoadComplete函數2 New一個SoundPool 的執行個體 sndPool,建構函式的第一個參數指定最多同時播放的檔案個數3 設定 sndPool的 onLoadCompleteListener
Time of Update: 2018-12-05
想實現圖中這樣中間有半透明表單的效果嗎?Android 在列表List中顯示半透明小表單效果的控制項,多的不多直接上代碼,要說的都在注釋裡了: import com.hiapk.market.R;import android.content.Context;import android.graphics.PixelFormat;import android.os.Handler;import android.view.LayoutInflater;import
Time of Update: 2018-12-05
今天晚上Jimmy問了我一個問題,就是如何在一個應用中
Time of Update: 2018-12-05
Android應用程式的記憶體被限定在16MB,至少在G1手機上是這樣。對於一個手機來說,這已經佔用了非常多的記憶體了,但是對於開發人員想要實現的目標而言,這些記憶體是非常少的。即時你本來就沒打算用掉所有的記憶體,但是你應該儘可能的少用記憶體,來讓其他程式可以保持運行,而不是被系統殺掉。系統在記憶體裡儲存的應用程式越多,使用者在應用程式之間選擇切換的速度就會越快。作為我工作的一部分,我跟蹤了Android應用程式記憶體泄露的情況,發現它們大多數是因為同一個問題:保持了對Context對象的長期的
Time of Update: 2018-12-05
碼農的風格,直接上代碼。android下判斷一個應用app是否是系統rom整合的方法:import android.app.Activity;import android.content.pm.ApplicationInfo;import android.content.pm.PackageInfo;import android.content.pm.PackageManager.NameNotFoundException;import android.os.Bundle;import