Time of Update: 2018-12-05
提前載入,可以放在static{}中,當類被載入的時候建立,如:static { sURLMatcher.addURI("mms_temp_file", "scrapSpace", MMS_SCRAP_SPACE);}懶載入,當被使用的時候再去建立private void buildReadContentValues() { if (mReadContentValues == null) { mReadContentValues = new ContentValues(
Time of Update: 2018-12-05
主檔案:package cn.com.android.test;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.GridView;import android.widget.Toast;import
Time of Update: 2018-12-05
下面是Android Source的packages/apps/Phone/src/com/android/phone/GsmUmtsCallForwardOptions.java裡面的一段code。package com.android.phone;//省略一些代碼public class GsmUmtsCallForwardOptions extends TimeConsumingPreferenceActivity { //省略一些代碼 private static
Time of Update: 2018-12-05
工具類的特點:使用參數傳遞的方法代替成員變數。(通過參數傳遞,使得方法能夠聲明為static)方法大多是static方法。通過私人的構造器來強化他的工具類的角色。工具類常命名為:XXXUtils一個例子:package com.android.calendar;//省略無關代碼。public class Utils { public static int getViewTypeFromIntentAndSharedPref(Activity activity)
Time of Update: 2018-12-05
本文參考自《編寫可讀代碼的藝術》,這本書,非常好!本文主要介紹兩種處理問題的方式,,減少嵌套層數。嵌套的層數無疑增加了代碼的複雜度。儘早return,對於能夠處理的判斷,儘早的處理處理,而後期的修正也會使代碼更直接明了。一個例子,重構前public synchronized Drawable getAvatar(Context context, Drawable defaultValue) { if (mAvatar == null) { if (mAvatarData !=
Time of Update: 2018-12-05
本文參考自《代碼整潔之道》,這本書,非常好!向方法中傳入boolean值參數,用於判斷邏輯並分開執行。缺點:方法簽名立即變得複雜起來。此方法做的事情多餘一件。執行個體: /** * @param isChecked */ protected void setAllDayViewsVisibility(boolean isChecked) { if (isChecked) { if (mEndTime.hour == 0 &&
Time of Update: 2018-12-05
使用有意義的計算運算式來代替具體的常量結果。例如:簡訊訊息的重試,會有一些重試的時間策略,一些計算好的時間可能如下:private static final int[] sDefaultRetryScheme = { 0,//現在 60000,//1分鐘 300000,//5分鐘 600000,//10分鐘
Time of Update: 2018-12-05
本文參考自《編寫可讀代碼的藝術》,這本書,非常好!簡單的Java資料類,通常會有很多的成員變數,記錄一種順序,並在使用的時候堅持這種順序,會感覺代碼更有條理。下面是一個Student類的例子package com.jue.test;public class Student {// 一種有意義的排列順序public final static int INDEX_ID = 0;public final static int INDEX_NAME = 1;public final static
Time of Update: 2018-12-05
水調歌頭【蘇軾】 明月幾時有?把酒問青天。不知天上宮闕,今夕是何年。我欲乘風歸去,又恐瓊樓玉宇,高處不勝寒。起舞弄清影,何似在人間! 轉朱閣,低綺戶,照無眠。不應有恨,何事長向別時圓?人有悲歡離合,月有陰晴圓缺,此事古難全。但願人長久,千裡共嬋娟。
Time of Update: 2018-12-05
經常有這樣的情況,一個方法裡有很多的代碼,不得不通過上下滑動螢幕來閱讀代碼。這種行數比較大的方法,有如下的缺點由雩都是細節,給讀者很高層次理解代碼帶來問題。很難抓住主次。一個例子: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String userSafetylegalUrl =
Time of Update: 2018-12-05
本文參考自《編寫可讀代碼的藝術》,這本書寫的非常好!有時候,我們可以通過“列對齊"的方式,讓代碼更易讀。執行個體代碼如下:package com.jue.test;public class Student {// 一種有意義的排列順序public final static int INDEX_ID = 0;public final static int INDEX_NAME = 1;public final static int INDEX_PHONENUMBER = 2;public
Time of Update: 2018-12-05
在Java的api中,對於Integer的cache了-127~128的資料。在方法valuesOf()中,實現如下public static Integer valueOf(int i) {assert IntegerCache.high >= 127;if (i >= IntegerCache.low && i <= IntegerCache.high)return IntegerCache.cache[i +
Time of Update: 2018-12-05
實現一個功能,為使用者提供一個基礎的版本。額外的想法,添加使用者可以配置的支援。優點:使用預設版本:使用者可以在最簡單的情況下,使用代碼,運行良好。使用者自己配置:提供了更多的選擇,這是重用的一種策略。還是在Integer的原始碼中,預設的Cache大小是int h = 127;可選的處理:(從設定檔中讀取)String integerCacheHighPropValue =
Time of Update: 2018-12-05
在Android Launcher裡,有CellLayout的概念。在案頭上,檔案夾裡,以及Folder裡都是使用了各自定製的CellLayout。它們的優點如下:給使用者很高的可定製性。增加了代碼的複用性。可以定製的UI結構,以launcher:開頭的為自訂的標籤。<com.android.launcher2.CellLayout xmlns:android="http://schemas.android.com/apk/res/android"
Time of Update: 2018-12-05
經過兩天的艱苦琢磨,終於搞出來了。<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
Time of Update: 2018-12-05
在網上搜了半天,各種方法亂七八糟的,一直沒找到頭緒。今天自己找到一種方法,於是稍微總結。1、運行/lib/libc.so.x檔案。這是一個連結檔案,指向一個真正的可執行檔。直接在shell中運行,可以看出glibc的版本號碼。2、使用getconf命令。該命令有一個參數a,可以列印出當前系統的各種參數值。$getconf -a也可以輸出glibc的版本號碼。3、查看gblic提供的工具的版本號碼,如ldd的版本號碼,也可以得知gblic的版本號碼。$ldd --version。4、也有人說使用$
Time of Update: 2018-12-05
http://blog.csdn.net/chenzheng_java/article/details/6249357(1)、使用系統定義的Notification以下是使用範例程式碼: //建立一個NotificationManager的引用 String ns = Context.NOTIFICATION_SERVICE; NotificationManager mNotificationManager = (NotificationManager)getSystemService(ns);
Time of Update: 2018-12-05
(2)、使用自訂的Notification要建立一個自訂的Notification,可以使用RemoteViews。要定義自己的擴充訊息,首先要初始化一個RemoteViews對象,然後將它傳遞給Notification的contentView欄位,再把PendingIntent傳遞給contentIntent欄位。以下範例程式碼是完整步驟://1、建立一個自訂的訊息布局 view.xml <?xml version="1.0" encoding="utf-8"?>
Time of Update: 2018-12-05
1、當我們繼承OnGestureListener監聽事件的時候,如果想要相應onFlip和onScroll方法,則必須首先讓onDown方法返回ture2、當我們使用popupWindow進行使用者輸入的時候,是不是經常出現輸入框被彈出來的IME遮蓋住的情況呢。這裡想要popWindow自動的適應位置很簡單,只需要加上這麼幾句代碼就行了。//設定popupWindow需要一個輸入框popup.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
Time of Update: 2018-12-05
參考自:http://hunankeda110.iteye.com/blog/1672836第一步:安裝ant,從官網下載最新版ant並解壓縮,配置ant環境變數,ant_home和path第二步:在cmd下切換到項目根目錄,執行以下命令: android update project -t 14 -p E:\other\AntTest(項目路徑)這個命令運行後會在項目根目錄下產生build.xml檔案第三步:在cmd下執行ant