一鸽扁、?數(shù)據(jù)存儲(chǔ)
1.?掌握Android?的3種本地?cái)?shù)據(jù)存儲(chǔ)方式以及應(yīng)用場(chǎng)景
第一種: 使用SharedPreferences存儲(chǔ)數(shù)據(jù)
適用范圍:保存少量的數(shù)據(jù)赘方,且這些數(shù)據(jù)的格式非常簡(jiǎn)單:字符串型芦瘾、基本類(lèi)型的值降盹。比如應(yīng)用程序的各種配置信息(如是否打開(kāi)音效毁欣、是否使用震動(dòng)效果昭躺、小游戲的玩家積分等)则果,解鎖口 令密碼等
核心原理:保存基于XML文件存儲(chǔ)的key-value鍵值對(duì)數(shù)據(jù)幔翰,通常用來(lái)存儲(chǔ)一些簡(jiǎn)單的配置信息。通過(guò)DDMS的File Explorer面板西壮,展開(kāi)文件瀏覽樹(shù),很明顯SharedPreferences數(shù)據(jù)總是存儲(chǔ)在/data/data//shared_prefs目錄下遗增。SharedPreferences對(duì)象本身只能獲取數(shù)據(jù)而不支持存儲(chǔ)和修改,存儲(chǔ)修改是通過(guò)SharedPreferences.edit()獲取的內(nèi)部接口Editor對(duì)象實(shí)現(xiàn)。 SharedPreferences本身是一 個(gè)接口款青,程序無(wú)法直接創(chuàng)建SharedPreferences實(shí)例做修,只能通過(guò)Context提供的getSharedPreferences(String name, int mode)方法來(lái)獲取SharedPreferences實(shí)例,該方法中name表示要操作的xml文件名抡草,第二個(gè)參數(shù)具體如下:
Context.MODE_PRIVATE: 指定該SharedPreferences數(shù)據(jù)只能被本應(yīng)用程序讀饰及、寫(xiě)。
Context.MODE_WORLD_READABLE: 指定該SharedPreferences數(shù)據(jù)能被其他應(yīng)用程序讀康震,但不能寫(xiě)燎含。
Context.MODE_WORLD_WRITEABLE: 指定該SharedPreferences數(shù)據(jù)能被其他應(yīng)用程序讀,寫(xiě)
SharedPreferences對(duì)象與SQLite數(shù)據(jù)庫(kù)相比腿短,免去了創(chuàng)建數(shù)據(jù)庫(kù)屏箍,創(chuàng)建表鼎兽,寫(xiě)SQL語(yǔ)句等諸多操作,相對(duì)而言更加方便铣除,簡(jiǎn)潔。但是SharedPreferences也有其自身缺陷鹦付,比如其職能存儲(chǔ)boolean尚粘,int,float敲长,long和String五種簡(jiǎn)單的數(shù)據(jù)類(lèi)型郎嫁,比如其無(wú)法進(jìn)行條件查詢(xún)等。所以不論SharedPreferences的數(shù)據(jù)存儲(chǔ)操作是如何簡(jiǎn)單祈噪,它也只能是存儲(chǔ)方式的一種補(bǔ)充泽铛,而無(wú)法完全替代如SQLite數(shù)據(jù)庫(kù)這樣的其他數(shù)據(jù)存儲(chǔ)方式。
第二種: 文件存儲(chǔ)數(shù)據(jù)
可以在設(shè)備本身的存儲(chǔ)設(shè)備或者外接的存儲(chǔ)設(shè)備中創(chuàng)建用于保存數(shù)據(jù)的文件辑鲤。同樣在默認(rèn)的狀態(tài)下盔腔,文件是不能在不同的程序間共享。
寫(xiě)文件:調(diào)用Context.openFileOutput()方法根據(jù)指定的路徑和文件名來(lái)創(chuàng)建文件月褥,這個(gè)方法會(huì)返回一個(gè)FileOutputStream對(duì)象弛随。
讀取文件:調(diào)用Context.openFileInput()方法通過(guò)制定的路徑和文件名來(lái)返回一個(gè)標(biāo)準(zhǔn)的Java FileInputStream對(duì)象。
第三種:SQLite存儲(chǔ)數(shù)據(jù)
SQLite Database數(shù)據(jù)庫(kù)宁赤。Android對(duì)數(shù)據(jù)庫(kù)的支持很好舀透,它本身集成了SQLite數(shù)據(jù)庫(kù),每個(gè)應(yīng)用都可以方便的使用它决左,或者更確切的說(shuō)愕够,Android完全依賴(lài)于SQLite數(shù)據(jù)庫(kù),它所有的系統(tǒng)數(shù)據(jù)和用到的結(jié)構(gòu)化數(shù)據(jù)都存儲(chǔ)在數(shù)據(jù)庫(kù)中佛猛。 它具有以下優(yōu)點(diǎn): a. 效率出眾惑芭,這是無(wú)可否認(rèn)的 b. 十分適合存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù) c. 方便在不同的Activity,甚至不同的應(yīng)用之間傳遞數(shù)據(jù)继找。
2.掌握?Android?的文件存儲(chǔ)系統(tǒng)的內(nèi)部存儲(chǔ)强衡、外部存儲(chǔ)的存儲(chǔ)位置、讀寫(xiě)流程
3.?理解外部存儲(chǔ)涉及的運(yùn)行時(shí)權(quán)限的申請(qǐng)
4.掌握?SharedPreferences存儲(chǔ)和讀取的開(kāi)發(fā)流程
5.?掌握?SQLite?數(shù)據(jù)庫(kù)的基本概念
6.掌握?SQLlite?數(shù)據(jù)庫(kù)的增刪改查的開(kāi)發(fā)流程
7.了解ORMLite码荔、GreenDAO?或?Room?等一種數(shù)據(jù)庫(kù)框架的使用方法
8.理解?ContentProvider?實(shí)現(xiàn)不同應(yīng)用之間數(shù)據(jù)共享的方法
二漩勤、?多線程及網(wǎng)絡(luò)編程
1.理解Android?的多線程的基本概念
2.?掌握?Android?的主線程與子線程交互的常用方法
3.理解?Handler?的異步消息機(jī)制的實(shí)現(xiàn)原理
4.?掌握?AsyncTask?類(lèi)的各個(gè)方法的定義及作用
5.掌握?Handler、AsyncTask?的開(kāi)發(fā)流程
6.掌握?Http?協(xié)議的基本概念
7.掌握?HttpURLConnection?訪問(wèn)網(wǎng)絡(luò)的開(kāi)發(fā)流程
8.?掌握?OkHttp缩搅、Voiley?或?Retrofit?等一種網(wǎng)絡(luò)通訊框架的使用方法
三越败、?Material?Design?及Android?新特性
1.了解?Material?Design?設(shè)計(jì)風(fēng)格在?Android?中的應(yīng)用
2.掌握?RecyclerView?的開(kāi)發(fā)流程
3.了解3種類(lèi)型的通知的區(qū)別
4.掌握?Notification?的開(kāi)發(fā)流程
5.?掌握Toolbar、CardView硼瓣、FloatingActionButton究飞、Snackbar?和ViewPager?等新控件的使用
6.掌握?CoordinatorLayout置谦、TabLayout、NavigationView?等多種控件的配合使用.產(chǎn)生不同的效果亿傅。
四媒峡、?View?體系及自定義?View
1.理解View的坐標(biāo)體系
2.了解View?滑動(dòng)的實(shí)現(xiàn)機(jī)理
3.了解View?動(dòng)畫(huà)的種類(lèi)及實(shí)現(xiàn)
4.掌握屬性動(dòng)畫(huà)涉及的相關(guān)類(lèi),以及開(kāi)發(fā)流程
5.了解?View?的事件分發(fā)機(jī)制
6.理解?View?的工作流程葵擎,以及measure過(guò)程谅阿、layout過(guò)程和draw過(guò)程的實(shí)現(xiàn)機(jī)理
7.理解自定義?View的4種類(lèi)型,掌握最簡(jiǎn)單的自定義View的實(shí)現(xiàn)酬滤。