Time of Update: 2017-02-27
如果需要注入某個參數化型別,比如List<String>:class Example { @Inject void setList(List<String> list) { ... } }可以使用TypeLiteral 來建立這個綁定。TypeLiteral 為一特殊類型 可以用於表示參數化型別。@Override public void configure() { bind(new TypeLiteral<List&
Time of Update: 2017-02-27
Injector 通過檢查bindings 定義來建立某個類型的執行個體對象。定義在Module 中的綁定稱為“明確聲明綁定(Explicit bindings”。Injector 會首先使用帶 有Explicit Bindings為某個類型建立執行個體對象。 當但某個類型沒有明確定義綁 定時,Injector 試圖構造“即時綁定(Just-in-time Bindings),JIT Bindings 也成為隱含綁定(implicit
Time of Update: 2017-02-27
在建立Bindings時,也可以不給出綁定的目標,通常用於含有@ImplementedBy 和@ProvidedBy (後面介紹)的實類(Concrete classes 或type)。 Untargeted bindings 目的是通知Injector 某個類類型,從而Injector可以預先準備某個依 賴。Untargetted Bindings不含to語句。例如:bind(MyConcreteClass.class);
Time of Update: 2017-02-27
這段時間在學Android應用開發,在想既然是用Java開發的應該很好反編譯從而得到原始碼吧,google了一下,確實很簡單, 以下是我的實踐過程。在此鄭重聲明,貼出來的目的不是為了去破解人家的軟體,完全是一種學習的態度,不過好像通 過這種方式也可以去漢化一些外國軟體。本文Android反編譯教程,測試環境:Win7 Ultimate x64Ubuntu 12.04 x86_x64反編譯工具包 下載
Time of Update: 2017-02-27
前面介紹了利用Android內建的控制項,進行滑動翻頁製作效果,現在我們通過代碼實現一些滑動翻頁的動畫效果。Animation實現動畫有兩個方式:幀動畫(frame-by-frame animation)和補間動畫(tweened animation)本示 例通過繼承Animation自訂Rotate3D,實現3D翻頁效果。效果圖如下:1、Rotate3D(Animation)首先,自訂Animation的3D動畫類Rotate3Dpublic class Rotate3D extends
Time of Update: 2017-02-27
Android SDK對應沒個定義在res目錄下的資源都會定義一個維一的資源ID。在編譯時間會在gen目錄下產生 R.java , 資源ID的 格式為 R.[type].[id] 類型為資源類型如anim, array, attr等可以在代碼或是XML 資源檔(如layout, style中)訪問這些資源。Context類提供了訪問資源的方法,一是直接通過如getText, getString
Time of Update: 2017-02-27
這個例子需要Android系統中安裝了支援RecognizerIntent.ACTION_RECOGNIZE_SPEECH的應用,比如Google的 Voice Search 應用。模擬器上預設沒有安裝,可以參見如何在Android emulator上安裝 APK 在模擬器上安裝一個Voice Search。本例 VoiceRecognition首先通過PackageManager檢測本機是否安裝了支援RecognizerIntent.ACTION_RECOGNIZE_SPEECH,如果有,則
Time of Update: 2017-02-27
這個例子的Icons Only 和 Icons and marquee 沒有什麼特別好說明的。而Use Remote views in balloon 介紹了可 以自訂在Extended Status bar顯示Notification的Layout,Extended Status Bar預設顯示Notification 是一個表徵圖後接文 字,對應大多數情況是夠用了。但如果有需要也可以使用自訂的Layout在Extented Status bar顯示Notification,方法是通
Time of Update: 2017-02-27
Android 作業系統對於<intent-filter>含有下列屬性的Activity會在應用程式管理器(Launcher)顯示一項,一般這 個Activity對應於某個應用的主Activity。<action android:name=”android.intent.action.MAIN” /><category android:name=”android.intent.category.LAUNCHER” /&
Time of Update: 2017-02-27
Intents 這個例子的代碼非常簡單:Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("audio/*"); startActivity(Intent.createChooser(intent, "Select music"));它使用了Intent.ACTION_GET_CONTENT 和 MIME 類型來尋找支援audio/* 的所有Data
Time of Update: 2017-02-27
Device Admin樣本介紹了類DeviceAdminReceiver,DevicePolicyManager和ActivityManager。類 DevicePolicyManager 用於管理Android裝置定義的一些策略,主要指密碼定義的長度,密碼是否要含大寫字母,小寫字母等設 置密碼需要滿足的規範,鎖定裝置或是清除所有使用者資料,這個類一般需要配合DeviceAdminReceiver來使用。
Time of Update: 2017-02-27
SetWallpaper介紹如何在Android擷取當前Wallpaper,對Wallpaper做些修改,然後用修改後的映像重新設定Wallpaper。WallpaperManager用來管理Android的Wallpaper。下面代碼通過WallpaperManager來取得當前Wallpaper然後顯示在螢幕 Layout的imageView上。final WallpaperManager wallpaperManager =
Time of Update: 2017-02-27
Reorder Activities 樣本有四個相關的Activitives: ReorderOnLaunch, ReorderTwo,ReorderThree, ReorderFour。其中ReorderOnLaunch為主Activity,ReorderOnLaunch啟動ReorderTwo ,ReorderTwo啟動 ReorderThree,ReorderThree啟動 ReorderFour。 這時在Activity的”back
Time of Update: 2017-02-27
CyanogenMod 10(CM10),最新基於Android 4.1果凍豆版本的ROM,在今天對少數裝置推出。版本10已經在過去的數月經曆了無數個夜晚的beta開發,但最終的穩定版將給選定的幾個Android裝置放出。CM10穩定版的ROM現在已經可以下載,三星Galaxy S II、LG Optimus Black和三星Galaxy S3可用。它也適用於Galaxy Nexus、Nexus 7平板電腦,甚至HTC的EVO 4G。CyanogenMod
Time of Update: 2017-02-27
前面介紹了RogoGuice2.0的基本用法,其它使用可以參見RoboGuice1.1開發 指南,2.0中提供了對Fragment,View(自訂View中使用注入)的支援,本博 客不再一一介紹。本例使用的是RoboGuice 開發包中的簡單樣本 Astroboy(阿童木)。涉及的使用RoboGuice2.0 的一些常用方法。本例 下載(Eclipse項目)。下面對項目中RoboGuice2的使用進行解釋。因為 本例沒使用自訂綁定,所以無需使用res/values/roboguice.xml
Time of Update: 2017-02-27
RoboGuice最近推出了2.0版本。和1.1相比具有:提高了穩定性支援Fragment更簡潔易用但由於RoboGuice2 不完全向下相容RoboGuice1.1,因此原來使用 RobuGuice1.1開發的項目需要對代碼做些修改才可以使用RoboGuice2.0.這裡主要說明一下使用Eclipse IDE開發環境升級到RoboGuice2.0 的一些升級注 意事項:1. 下載新的RoboGuice庫,Roboguice2.0 庫有四個庫組成,如 下圖所示:庫可以從 http://code.
Time of Update: 2017-02-27
Roboguice 提供了對Context 生命週期相關的事件的send 和receive ,系統缺 省支援的事件為:OnActivityResultEventOnConfigurationChangedEventOnContentC hangedEventOnContentViewAvailableEventOnCreateEventOnDestroyEv entOnNewIntentEventOnPauseEventOnRestartEventOnResumeEvent<
Time of Update: 2017-02-27
Roboguice 對訪問res 目錄下各種資源drawable, arrary, string 等也提供 了注入支援。可以通過@InjectResource 很方便的應用所需資源。本例修 改Android ApiDemos樣本解析(48):Content->Resources->Resources 使 用Inject Resource方法來訪問資源。public class InjectResourceDemo extends RoboActivity {
Time of Update: 2017-02-27
使用Intent 啟動一個Activity,Service等時,可以通過putExtra 傳送資料 ,被觸發的Activity,Service可以使用getIntent()的getExtras 取的Extra的 Bundle ,然後再根據Extra的索引值(Key)取的對應的參數值。RoboGuice提 供了一個簡潔的方法來取得 這些Extra 值,通過@InjectExtra 標記。本 例使用兩個Activity,InjectExtraDemo 用來觸發InjectExtraReceiver,
Time of Update: 2017-02-27
在Android應用程式中,很多地方需要引用到Context對象(Activity, Application,Service等)。Roboguice 使得引用Context對象變得非常容易。可以參見下面例子,這裡定義一個不在Activity中的類ContextInfo,需 要引用Context對象:class ContextInfo{ final Context context; @Inject ContextInfo(Context context){