Android學習筆記

圖片來之網絡

1、佈局方式:

(1)線性佈局LinearLayout   (2)表格佈局TableLayout  (3)幀佈局FrameLayout  (4)相對佈局RelativeLayout  (5)網格佈局GridLayout   (6)絕對佈局AbsoluteLayouthtml

2、經常使用距離單位:

px(像素)   dip或dp(device independent pixels 設備獨立像素)  sp(scaled pixels 比例像素)  in(英寸) mm(毫米)  pt(磅)前端

3、事件處理機制:

(1)基於監聽的事件處理。  (2)基於回調的事件處理。java

4、Activity的主要職責爲:完成界面初始化工做。

5、Configuration 描述手機設備上的配置信息。

6、Handle類:

(1)在新啓動的線程中發送消息。 (2)在主線程中獲取、處理消息。react

7、Activity的4種加載模式:

(1)standard: 標準模式   (2)singleTop: Task棧頂單例模式  (3)singleTask:  Task內單例模式   (4)singleInstance: 全局單例模式(新的Task,且次Task只包含這個Activity)。   **在AndroidManifest.xml中,設置launchMode **android

8、Fragment爲Activity的片斷,擁有本身的聲明週期,也能夠接受它本身的輸入事件。必須「嵌入」Activity中使用。

子類: DialogFragment: 對話框界面的Fragment。 ListFragment: 實現列表界面的Fragment。 PreferenceFragment: 選項設置界面的Fragment。 WebViewFragment: WebView界面的Fragment。git

必須實現方法: onCreate(): 初始化想要在Fragment中保持的必要組件。 onCreateView(): 繪製界面組件。 onPause(): 當用戶離開該Fragment時將會調用。github

生命週期:web

onAttach(): 當該Fragment被添加到Activity時被回調。   該方法只會被調用一次。 onCreate(): 建立Fragment時被回調。  該方法只會被調用一次。 onCreateView(): 每次建立、繪製該Fragment的View組件時回調該方法。 onActivityCreated():當Fragment所在的Activity被啓動完成後回調該方法。 onStart(): 啓動Fragment時被回調。 onResume(): 回覆Fragment時被回調,在onStart()方法後必定會回調onResume()方法。 onPause(): 暫停Fragment時被回調。 onStop(): 中止Fragment時被回調。 onDestroyView(): 銷燬該Fragment所包含的View組件時調用。 onDestroy():銷燬Fragment時被回調。 該方法只會被調用一次。 onDetach(): 將該Fragment從Activity中刪除、替換完成時回調該方法,在onDestroy()方法後必定會回調onDetach()方法。 該方法只會被調用一次。json

Activity和Fragment通信:後端

Fragment獲取它所在的Activity:調用Fragment的getActivity(). Activity獲取它包含的Fragment:調用Activity關聯的FragmentManager的findFragmentById()或findFragmentByTag()方法. Activity向Fragment傳遞數據:在Activity中建立Bundle數據包,調用Fragment的setArguments(Bundle bundle)方法便可將bundle數據包傳給Fragment。 Fragment向Activity傳遞數據或Activity須要在Fragment運行中進行實時通訊:在Fragment中定義一個內部回調接口,再讓包含該Fragment的Activity實現該回調接口。

9、Android上的Style分爲:

(1)Theme是針對窗體級別的,改變窗體樣式。 (2)Style是針對窗體元素級別的,改變指定空間或者Layout的樣式。 (Android系統的themes.xml和style.xml包含了不少系統定義好的style,建議在裏面挑個合適的,而後再繼承修改)

10、gravity的佈局:

(1)」left|right」 絕對的對齊 (2)「start|end」 基閱讀順序的對齊

11、Adapter 是鏈接後端數據和前端顯示的適配器接口,是數據和UI(View)之間一個重要的紐帶。

有點像cell,定義好layout,並將modle傳入。

12、android studio實現父類的抽象方法的快捷方法:

(1)ctrl + enter (2) 選擇 Implement Methods 就能夠自動生成須要的方法。

十3、ScrollView can host only one direct child的提示,由於scrollview中只能有一個子元素,即全部元素須要放到LinearLayout 或 RelativeLayout中。

十4、

android:gravity               針對控件裏的元素來講的,用來控制元素在該控件裏的顯示位置。 android:layout_gravity   針對控件自己而言,用來控制該控件在包含該控件的父控件中的位置。

出現"layout"就是控件對整個佈局的操做

十5、android:layout_weight = "1**」**

只能在LinearLayout中使用,不能在RelativeLayout中使用。

十6、MVP的邏輯:

網絡請求聲明接口,在APIService中完成 Model層編寫完成接口請求 Presenter中實現接口的返回操做 View中定義界面操做接口 Presenter調用View接口 在Activity中實現View的接口

十7、

private:       只有在本類中才能訪問 public:        正好和private相反,在任何地方都能訪問 protected:   本包內能訪問,而在包外只有它的子類能訪問;

十8、

Log.v(tag,message);        //verbose模式,打印最詳細的日誌  Log.d(tag,message);        //debug級別的日誌  Log.i(tag,message);        //info級別的日誌  Log.w(tag,message);        //warn級別的日誌

Log.e(tag,message);        //error級別的日誌

十9、native關鍵字: 一個java調用非java代碼的接口

二10、Java中用final標識常量,不用const

二11、StringBuffer 爲可變的String, 提供了append方法

二12、equale 和 == 的區別:

equal: 檢查字符串的值是否相等 ==:      檢查對象是否相等

二十3、Collection集合包括 Set, List,Map。

Set HashSet: 不容許出現重複元素;不保證集合中元素的順序;容許包含一個null元素。(LinkedHashSet爲有序的) TreeSet:能夠實現排序的集合。(使用Comparator進行排序)

List ArrayList:  可變的數組列表。 LinkedList:  鏈表結構實現了List接口。 Vector:      相似與ArrayList。不一樣處:同一時刻只能夠有一個線程操做。 Stack類:   數據結構中的堆棧。

Map

HashMap:   哈希表實現映射集合結構。 TreeMap:  按Map映射中的元素按照鍵進行升序排序。

二十4、Enumeration和Iterator的區別:

Enumeration只能在Vector和HashTable中使用。Iterator使用全部結合。 Enumeration遍歷集合時不可移除元素,Iterator能夠。

二十5、

String.format("¥%.2f", mOrderInfo.getOrder_amount()); 將float保留兩位小數,轉爲 string

二十6、Context.MODE_WORLD_WRITEABLE爲每一個APP建立一個文件夾。

二十7、

public void onClick(View v) {
        new Thread(new Runnable() {
            public void run() {
                final Bitmap bitmap = loadImageFromNetwork("http://example.com/image.png");
                mImageView.post(new Runnable() {
                    // run方法會在UI線程中執行  
                    public void run() {
                        mImageView.setImageBitmap(bitmap);
                    }
                });
            }
        }).start();
    }
複製代碼

**在主線程中,更新UI組件。 ** 調用如下方法: Activity.runOnUiThread(Runnable) View.post(Runnable) View.postDelayed(Runnable, long)

若是在工做線程中調用了這3個方法, 那麼方法中Runnable參數封裝的操做會在UI線程中執行.

二十8、View事件:

View.OnClickListener              單擊事件 View.OnCreateContextMenuListener  建立上下文菜單事件 View.OnFocusChangeListener        焦點改變事件 View.OnKeyListener                按鍵事件 View.OnLongClickListener          長按事件 View.OnTouchListener              觸摸事件

二十9、

layout能夠建立橫屏和豎屏的佈局。 Configuration 能夠獲取系統的信息

三10、Activity的基類:

FragmentActivity:實現Fragment,必須繼承這類 AccountAuthenticatorActivity: 實現帳戶管理界面的Activity TabActivity:實現Tab界面的Activity ListActivity:實現列表界面的Activity LauncherActivity:實現Activity列表界面的Activity,當單擊列表項時,所對應Activity被啓動 PreferenceActivity:實現程序參數設置,存儲界面的Activity AliasActivity:別名Activity的基類,啓動其餘Activity時結束本身 ExpandableListActivity:可擴展的list,單擊某個item後,又可顯示一個子list。

三11、Context抽象類:一個訪問application環境全局信息的接口,能夠訪問application的資源和相關的類,功能有:

啓動Activity 啓動和中止Service 發送廣播信息(Intent) 註冊廣播信息(Intent)接受者 能夠訪問APK中各類資源(如Resources和AssetManager等) 能夠訪問Package的相關信息 APK的各類權限管理

三12、Android應用要求全部應用程序組件(Activity、Service、ContentProvider、BroadcastReceiver)都必須顯式配置。

Activity的配置: name:指定Activity的實現類的類名 icon:指定Activity對應的圖標 label:指定Activity的標籤 exported:指定Activity是否容許被其餘應用調用 launchMode:指定Activity的加載模式。(standard,singleTop,singleTask和singleInstance)

三十3、Activity的生命週期:

4種狀態: 運行狀態 暫停狀態 中止狀態 銷燬狀態

回調方法: onCreate(Bundle savedStatus): 建立Activity時被回調。該方法只會被調用一次。 onStart(): 啓動Activity時被回調。 onRestart(): 從新啓動Activity時被回調。 onResume(): 恢復Activity時被回調。在onStart()方法後必定會回調onResume()方法。 onPause(): 暫停Activity時被回調。 onStop(): 中止Activity時被回調。 onDestroy(): 銷燬Activity時被回調。 該方法只會被調用一次。

三十4、Fragment事務

FragmentManager fragmentManager = getFragmentManager();FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
複製代碼

Activity中獲取Fragment事務,調用add()、remove()、 replace()操做,調用commit() 提交事務。

三十5、Bundle類:一個key-value對。是一個final類。

三十6、Android包含三種重要組件:Activity,Service,BroadcastReceiver。

三十7、Intent用於值傳遞:

Intent對象包含Component,Action,Category,Data,Type,Extra和Flag屬性。 Component:包名 Action:動做 Category:附加類別信息 Data: Action屬性提供操做的數據,接受一個Uri對象 Type:Data屬性所指定Uri對應的MIME類型 Extra:Bundle對象,用於數據交互 Flag:控制旗標

三十8、TabActivity: Layout中須要設置TabHost,並添加FrameLayout和TabWidget,用來顯示tab欄和內容。

三十9、

Drawable資源:StateListDrawable資源: 隨目標組件狀態的改變而自動切換。 LayerDrawable資源: 數組順序繪製。(layer-list 覆蓋繪製) ShapeDrawable資源:幾何圖形(如矩形、圓形、線條)。(shape 繪製) ClipDrawable資源:其餘位圖上截取一個「圖片片斷」。(clip 截圖) AnimationDrawable資源:動畫。

四10、主題和樣式的區別:主題不能做用於單個的View組件,主題應該對整個應用中的全部Activity起做用,或對指定的Activity起做用。

主題定義的格式應該是改變窗口外觀的格式,例如窗口標題、窗口邊框。

四11、原始資源:位於/res/raw/目錄下和位於/assets/目錄下

四12、invalidate() 實現界面刷新,會從新調用DrawView()方法。 **不能在線程中調用。**postInvalidate() 界面刷新。 可在線程中調用。

四十3、SharedPreferences與iOS的UserDefault同樣,用於保存簡單信息到本地。

四十4、開發Activity步驟:(1)開發Activity子類。 (2)在AndroidManifest.xml文件中配置Activity。

四十5、AdapterView( 至關於iOS的UITableView):子類有

ListView ExpandableListView GridView Spinner Gallery AdapterViewFlipper StackView

Adapter接口的實現類有: HeaderViewListAdapter BaseAdapter CursorAdapter ResourceCursorAdapter SimpleCursorAdapter ArrayAdapter SimpleAdapter

四十6、獲取SDCard中的路徑:

File sdCardDir = Environment.getExternalStorageDirectory();

四十7、在WebView中顯示頁面

webView = (WebView) findViewById(R.id.webView); 
    //WebView加載web資源 
    webView.loadUrl("http://baidu.com"); 
    //覆蓋WebView默認使用第三方或系統默認瀏覽器打開網頁的行爲,使網頁用WebView打開 
    webView.setWebViewClient(new WebViewClient() 
    { 
        @Override public boolean shouldOverrideUrlLoading(WebView view, String url) 
        { 
            // TODO Auto-generated method stub 
            // 返回值是true的時候控制去WebView打開,爲false調用系統瀏覽器或第三方瀏覽器 
            view.loadUrl(url); 
            return true; 
            }
    });
複製代碼

若是不設置,則直接在系統的瀏覽器中打開

四十8、String,StringBuffer,StringBuilder之間的區別

對String,你建立了一個String,你能經過set方法改變它的長度length嗎?顯然是不行的! 但 StringBuffer 能夠! String 字符串常量StringBuffer 字符串變量(線程安全)StringBuilder 字符串變量(非線程安全)

基原本說都是在性能上都是 StringBuilder > StringBuffer > String

四十9、show.loadUrl("file:///android_asset/test.html");

訪問資源文件

五10、Call requires permission which may be rejected by user: code should explicitly check to see if permission

警告出現,將須要執行的代碼放到Try Catch塊中。

五11、經常使用第三方庫:

com.google.zxing:core   實現二維碼生成和解析 io.reactivex:rxandroid     處理網絡請求 io.reactivex:rxjava           異步操做,鏈式操做 com.squareup.retrofit2:retrofit                   網絡請求框架 com.squareup.retrofit2:adapter-rxjava      支持rxjava com.squareup.retrofit2:converter-gson     Gson作爲json的轉換器 org.greenrobot:eventbus                           「發佈/訂閱」模式的事件總線 com.umeng.analytics:analytics                  友盟 com.android.support:multidex                   解決Dex包超過65535 com.flipboard:bottomsheet-core               底部滑出面板 com.flipboard:bottomsheet-commons      底部滑出面板 com.github.zhaokaiqiang.klog                   Log開源項目 com.github.bumptech.glide                       圖片加載框架 com.readystatesoftware.systembartint      沉浸式狀態欄 com.jcodecraeer:xrecyclerview                  recycleView com.mylhyl:acp                                           權限控制

五12、View顯示狀態切換

顯示  View.VISIBLE 隱藏  View.INVISIBLE 移除  View.GONE

五十3、

五十4、

相關文章
相關標籤/搜索