Android的開發學習

一. 項目模塊
1.  新手引導使用控件 ViewPager的使用步驟
1) 在佈局中添加ViewPager控件
     
    技巧:在代碼中輸入ViewPager,聯想,從import中拷貝完整包名類名
    
2) 設置適配器
    
2. 最後一個頁面顯示當即體驗按鈕
1) 在適配器的getItem方法中判斷若是是最後一個頁面,設置按鈕顯示
    
2) 在Fragment中新增方法setVisible(),保存是否顯示,並在onCreate()方法中設置按鈕是否顯示
 
3. ViewPager的緩存機制
除當前頁面外左右各緩存的頁面數
 
4. 動畫
FrameAnimation    幀動畫      DrawableAnimation
TweenAnimation  補間動畫   ViewAnimation
 
TweenAnimation的缺點:只是視圖上的改變,控件的屬性並無真正改變
 
5. 屬性動畫PropertiesAnimation
兼容低版本(2.x)的動畫包
 
6. 開源項目的原理(瞭解)
 
 
7. 導入開源項目注意事項
1) 選擇Android->Existing
     
2) 必定要選擇copy
     
 
 
技巧:設置語法着色功能
 
二. 主頁面
1. Actionbar
差異:
1) 美觀
2) 後退按鈕
3) 菜單可視化
App  CompatV7的做用:兼容2.1以後版本,可使用Actionbar
 
2. 使用AppcomatV7實現Actionbar的步驟
1) 導入AppCompatV7庫
    D:\Android_Prog\android-sdk_r24.2\extras\android\support\v7
2) 項目引用android-support-v7-appcompat庫,修改Activity繼承        
    ActionBarActivity類
3) 修改主題,必須以Theme.AppCompat開頭
    
4) 設置Actionbar屬性
    
提示:使用24.2版本的eclipse不須要作前三步驟
 
3. 在Actionbar中添加菜單項
1) back按鈕的事件
    新版本Eclipse:
     
    低版本Eclipse:
    
2) 添加菜單項
    
3) 菜單項點擊事件
    
 
4. Fragment支持嵌套,使用片斷管理器
    
 
5. Activity中不一樣的Fragment顯示不一樣的菜單項實現步驟
基於:一個Activity,兩個Fragment,Fragment中有不一樣菜單項
 
三. 側滑佈局
1.  Drawerlayout控件的使用方法
View
   |______ViewGroup(全部佈局的基類)
                   |______LinearLayout
                   |______RelativeLayout
                   |______FrameLayout
                   |______TableLayout
                   |______AbsoluteLayout        
   |______TextView
                   |______EditText       
                   |______Button 
                                   |______CompoundButton
                                            |______Checkbox
                                            |______RadioButton
                                            |______ToggleButton
                                            |______Switch
   |______ImageView
                   |______ImageButton            
   |______Progressbar
                   |______Seekbar
                   |______Ratingbar
        
 
開源項目:
國內
 
 
常見問題
1. 
緣由:項目配置問題
解決:
 
2. 24.2版本Eclipse問題
 
3. 關聯supportV4源代碼
源代碼路徑:
D:\Android_Prog\android-sdk_r24.2\extras\android\support\v4\src
關聯方法 :
在libs目錄中新建一個文件,名稱爲:  android-support-v4.jar.properties
打開文件,編輯內容爲:
src=源代碼路徑
關閉項目,再打開,
 
4. Call requires API level 11 (current min is 8): android.app.Activity#getActionBar
 
5. 06-03 06:46:13.392: E/AndroidRuntime(7962): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.ex_templete/com.example.ex_templete.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
 
6. 工具環境 
1) 路徑中不要含有中文和空格
2) 兩個版本不能同時使用
 
7. The method add(int, Fragment) in the type FragmentTransaction is not applicable for the arguments (int, BlankFragment)
 
 
一. 項目問題
1. 升級開發環境的配置 
2. 新建項目編譯報錯
規避方法:先建立一個最低版本是4.0的項目,而後再建立最低版本是2.2的項目
3. 亂碼問題
char
編碼:25991 = 文
常見的編碼格式:
UTF-8
GBK    簡體中文
GB2312
GB18030
Big5    繁體
ISO 8859-1
 
常見問題場景:客戶端與服務端的編碼方式不一樣
如何解決:最好統一爲utf-8 
 
4. 導入supportv7庫
1) 
問題:編譯版本默認不是5.x,
解決:修改編譯版本爲5.1.1,再clean
2)  
error: Error retrieving parent for item: No resource found that matches the given name 'Widget.  AppCompat.ActionButton'.
3) cardView
 
5. supportV7源代碼
D:\Android_Prog\android-sdk_r24.2\extras\android\m2repository\com\android\support\appcompat-v7\22.1.1
 
6. 項目引用庫時,提示編譯報錯
緣由:項目和庫中含有相同jar包的不一樣版本,
解決:將兩個jar包改成一致
          或者刪除項目中的jar包
 
7. 判斷ViewPager中的某個Fragment是否可見
 
 
二. 項目框架搭建
1.  側滑佈局 Drawerlayout控件的使用方法
參考SupportV7的 ActionBarWithDrawerLayout, 拷貝佈局
 
2. 整合主頁結構
1) 實現ListView佈局,行佈局參考知乎App
2) ListView行點擊事件,實現替換主頁面的Fragment
3) 替換Fragment後關閉DrawerLayout
 
3. MaterialMenu
參考SupportV7Demo的ActionBarWithDrawerLayout.java
1) 拷貝代碼和佈局
2) 修改主頁內容爲FrameLayout
3) 菜單ListView點擊事件修改成替換主頁Fragment
 
三. 技術框架
1. Volley
功能: 異步HTTP下載
 
技巧
1) 判斷當前系統版本
2) Eclipse本地歷史記錄
 
常見問題:
1. 如無必要,不要用成員變量
    必要:一個方法須要訪問另外一個方法中的局部變量
    如非必須,不要用靜態變量
 
2. [2015-06-04 14:34:45 - Dex Loader] Unable to execute dex: Multiple dex files define Landroid/support/v7/appcompat/R$anim;
[2015-06-04 14:34:45 - Demo_MM_abc] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/v7/appcompat/R$anim;
 
3. 項目改成庫,R中的常量變爲變量
 
 
一. 技術框架
1. HTTP、異步、
    建立json對應的類、
    解析JSON、
    異步下載圖片、內存緩存、外存緩存
 
2. Volley依賴的技術點:Application
做用:1) 全局對象(相似於單實例)
          2) 在Activity初始化以前被執行
應用場景:作庫的初始化
 
Volley = AsyncTask + URL
 
3.  Volley
功能: 異步HTTP下載
 
4. Volley使用步驟:
1) 在清單中增長 Internet權限
2) 依賴lib_volley庫
3) 拷貝Demo中的App_VolleyExamples類, 並在清單中註冊
    同時拷貝MyVolley和BitmapLruCache
    
4) 從Demo的Act_SimpleRequest類中拷貝
    
5) 拷貝方法
     
 
5. 解決亂碼
 
6. 解析JSON
1) 建立json字符文件
    注意文件要修改成utf-8無bom格式
2) 根據json文件自動生成封裝數據的JAVA類
jsonschema2pojo-0.4.8.zip
操做步驟:
2.1 解壓縮到D盤根目錄
2.2 cd /d D:\jsonschema2pojo-0.4.8進入本目錄
2.3 jsonschema2pojo -T JSON -a NONE --omit-tostring --omit-hashcode-and-equals --target java-gen  --annotation-style GSON --sourcejson.txt
注意:將 json.txt 替換爲你的json文件名,並刪除如下兩行語法錯誤語句,並添加package
3) 拷貝gson.jar文件到項目的libs目錄中 ,文件位置
     
4) 使用gson包的API解析Json字符串
 
7.   異步下載圖片、內存緩存、外存緩存
AsyncTask + IO + HashMap
問題:1) 性能
          2) 策略   LruCache
背景:Android App       16MB    24MB   32MB   48MB
原理流程圖
背景:嚴格模式StrictMode
典型:在Main線程執行HTTP操做會FC
2.3新增,默認關閉,4.0默認開啓
 
8. UIL庫的使用步驟:
參考Demo中的ImageListActivity.java
1) 清單中添加Internet權限
2) 項目中拷貝lib_uil.jar到libs目錄中
3) 從Demo中拷貝UILApplication到項目中,並在清單中配置
    問題:編譯錯誤,刪除如下代碼
    
4) 拷貝
    
5) 拷貝options對象的建立代碼
    
 
 
 
 
 
常見問題:
 
2. The method init(Context) from the type MyVolley is not visible
 
3. 使用UIL
 
相關文章
相關標籤/搜索