【時(shí)間地點(diǎn)】 | 2013年11月22-24日 深圳 (21日?qǐng)?bào)到) | ||
【培訓(xùn)講師】 | 王老師 | ||
【參加對(duì)象】 | 廣大從事Android開(kāi)發(fā)工作的IT技術(shù)人員及愛(ài)好者,包括研發(fā)工程師、解決方案工程師、系統(tǒng)維護(hù)工程師等。 | ||
【參加費(fèi)用】 | ¥4900元/人 (含教材、培訓(xùn)費(fèi)、以及學(xué)習(xí)用具等費(fèi)用)食宿統(tǒng)一安排,費(fèi)用自理。(請(qǐng)學(xué)員帶一寸彩照2張—背面注明姓名,身份證復(fù)印件一張)。 | ||
【會(huì)務(wù)組織】 | 森濤培訓(xùn)網(wǎng)(www.gzlkec.com).廣州三策企業(yè)管理咨詢有限公司 | ||
【咨詢電話】 | 020-34071250;020-34071978(提前報(bào)名可享受更多優(yōu)惠) | ||
【聯(lián) 系 人】 | 龐先生,鄧小姐;13378458028、18924110388(均可加微信) | ||
【在線 QQ 】 | 568499978 | 課綱下載 | |
【溫馨提示】 | 本課程可引進(jìn)到企業(yè)內(nèi)部培訓(xùn),歡迎來(lái)電預(yù)約! |
各有關(guān)單位:
為響應(yīng)工業(yè)和信息化部 “工業(yè)和信息化領(lǐng)域緊缺人才培養(yǎng)工程”,我中心針對(duì)目前企事業(yè)單位信息技術(shù)研發(fā)人員對(duì)Andriod技術(shù)的緊迫需求,設(shè)計(jì)推出了Android高級(jí)開(kāi)發(fā)實(shí)戰(zhàn)課程。授課專(zhuān)家在多年的Android(6款硬件產(chǎn)品和超過(guò)20款應(yīng)用軟件)及HTML5系列技術(shù)的實(shí)戰(zhàn)背景下制定本課程,課程全程以過(guò)去工作的案例為核心,掌握本課程后至少能夠輕松編寫(xiě)完成諸如UC迅雷、優(yōu)酷和KU6等的Android視頻客戶端、趕集網(wǎng)的移動(dòng)客戶端等并對(duì)HTML5有本質(zhì)性的認(rèn)識(shí),最后以ActivityManagerService的源碼剖析為核心,徹底剖析Android程序運(yùn)行背后的機(jī)制,深刻體悟Android框架的設(shè)計(jì)哲學(xué)和實(shí)現(xiàn)機(jī)制,旨在幫助貴公司完成任意負(fù)責(zé)程度的Android程序開(kāi)發(fā)并從務(wù)實(shí)實(shí)戰(zhàn)的角度幫助Android工程師升級(jí)到Android架構(gòu)師。具體課程事宜如下:
● 課程目標(biāo)
1. 通曉Android的架構(gòu)哲學(xué)和力量來(lái)源以及實(shí)現(xiàn)技術(shù);
2. 能夠開(kāi)發(fā)出任意類(lèi)型、任意復(fù)雜程度的應(yīng)用程序;
3. 能夠使用NDK技術(shù)編程;
4. 實(shí)戰(zhàn)Android測(cè)試技術(shù);
5. 對(duì)HTML5有根本性的理解;
6. 以ActivityManagerService的源碼剖析為核心,徹底剖析Android程序運(yùn)行背后的機(jī)制,深刻體悟Android框架的設(shè)計(jì)哲學(xué)和實(shí)現(xiàn)機(jī)制。
● 課程要點(diǎn)
1. 揭秘Android;
2. 精通四大組件;
3. 精通Android高級(jí)界面編程;
4. 精通Android網(wǎng)絡(luò)編程;
5. 熟練NDK編程;
6. 實(shí)戰(zhàn)Android測(cè)試技術(shù);
7. 洞悉HTML5;
8. 以ActivityManagerService的源碼剖析為核心,徹底剖析Android程序運(yùn)行背后的機(jī)制,深刻體悟Android框架的設(shè)計(jì)哲學(xué)和實(shí)現(xiàn)機(jī)制
● 授課師資
王老師 國(guó)內(nèi)最早(2007年)從事于Android系統(tǒng)移植、軟硬整合、框架修改、應(yīng)用程序軟件開(kāi)發(fā)以及Android系統(tǒng)測(cè)試和應(yīng)用軟件測(cè)試的技術(shù)專(zhuān)家和技術(shù)創(chuàng)業(yè)人員之一。成功對(duì)包括三星、摩托羅拉、華為等世界500強(qiáng)企業(yè)實(shí)施Android底層移植、框架修改、應(yīng)用開(kāi)發(fā)等培訓(xùn)。 成功對(duì)平安保險(xiǎn)、英特爾等實(shí)施HTML5培訓(xùn); 撰寫(xiě)了《大話企業(yè)級(jí)Android應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)》、《基于Android平臺(tái)的商業(yè)軟件---手機(jī)守護(hù)神開(kāi)發(fā)全程實(shí)戰(zhàn)》、《Android 4.0網(wǎng)絡(luò)編程詳解》、《細(xì)說(shuō)Android NDK編程》、《Android軟、硬、云整合實(shí)戰(zhàn)》、《Android開(kāi)發(fā)三劍客——UML、模式與測(cè)試》等多部Android著作。
● 培訓(xùn)證書(shū)
本課程頒發(fā)雙證,證書(shū)查詢:www。ncie。gov。cn;
1、工業(yè)和信息化部人才交流中心頒發(fā)的《Android高級(jí)架構(gòu)師》證書(shū)。
證書(shū)可作為專(zhuān)業(yè)技術(shù)人員職業(yè)能力考核的證明,以及專(zhuān)業(yè)技術(shù)人員崗位聘用、任職、定級(jí)和晉升職務(wù)的重要依據(jù)。
● 具體課程安排
第一天
1.1Android的哲學(xué)思考
1. 造型簡(jiǎn)單、內(nèi)涵豐富、無(wú)限重復(fù)
2. Android的勝利者
3. Android核心力量源泉
4. Android的IOC容器、解耦
5.Android和iOS的核心區(qū)別
1.2Android框架分析
1. Android框架
2. Android設(shè)計(jì)模式
3. 深入Android的IOC
4.框架的重大意義
5.Android的硬件框架HAL
6.Android各主要版本區(qū)別(2.3,3.0, 4.0)
7..Android和iOS的共同點(diǎn)
1.3Dalvik VM 1. Dalvik VM的特點(diǎn),Dalvik VM和JVM的比較
2 .Dalvik VM的內(nèi)存分布及OOM(Out of Memory)的根本原因和解決方案是什么?
3 .Preload Classes和 Preload Resources,ClassLoader到底在哪里?
4 .Dalvik與Java和C/C++
1.4Android開(kāi)發(fā)環(huán)境搭建和HelloWorld
1. Java、Eclipse、SDK、NDK、ADT
2. 搭建環(huán)境過(guò)程中的疑難問(wèn)題
3.徹底解決沒(méi)有3G信號(hào)的問(wèn)題
4.開(kāi)發(fā)HelloWorld
5.徹底剖析第一個(gè)程序
6.Android應(yīng)用程序開(kāi)發(fā)的經(jīng)典模式---MVC模式徹底剖析
7.總結(jié):掌握一個(gè)完整的應(yīng)用程序的開(kāi)發(fā)步驟、注意事項(xiàng)、方法等
1.5Android發(fā)短信、發(fā)彩信、打電話
1.發(fā)短信案例
2.發(fā)彩信案例
3,打電話案例
4,總結(jié)和思考之一:Android應(yīng)用程序的設(shè)計(jì)理念
5,總結(jié)和思考之二:Android應(yīng)用程序的生命周期
1.6Activity生命周期剖析、應(yīng)用程序生命周期剖析
1.Activity生命周期周期圖分析
2.Activity生命周期測(cè)試代碼
3.Activity嵌套生命周期
4.應(yīng)用程序生命周期剖析
5.對(duì)Android管理應(yīng)用程序和Activity方式思考
1.7不同Activity之間的調(diào)用和數(shù)據(jù)傳輸,關(guān)于隱式Intent精彩絕倫剖析,關(guān)于setType的問(wèn)題已經(jīng)解決方案顯示Intent和隱式Intent使用場(chǎng)景分析
1.startActivity,startActivityForResult,requestCode,resultCode,finish,onActivityResult的徹底剖析
2.關(guān)于隱式Intent剖析:動(dòng)作(Action)、類(lèi)別(category)、數(shù)據(jù)data(Uri(Schema,Host,Path)和數(shù)據(jù)類(lèi)型(MimeType))
3.setType()帶來(lái)的困擾以及最佳解決方案
4.顯示Intent和隱式Intent使用場(chǎng)景、使用意義、利弊。
5.對(duì)Android中鼓勵(lì)解耦的實(shí)現(xiàn)方式的思考
1.8 Handler、Looper、Message、MessageQueue
1. Android的事件驅(qū)動(dòng)模型
2. Looper、MessageQueue、Hanlder、Message等源碼深度剖析
3. Looper、MessageQueue、Hanlder、Message及多線程實(shí)戰(zhàn)案例
1.9 AsyncTASK異步線程技術(shù)
1. 使用AsyncTask的原因及對(duì)AsyncTask的思考
2. AsyncTask代碼示例
3. AsyncTask源碼剖析
4. 異步線程調(diào)用的應(yīng)用場(chǎng)景及注意事項(xiàng)
2.0Android調(diào)試
1.調(diào)試的重要價(jià)值
2. 調(diào)試實(shí)戰(zhàn)
2.1 Android基本UI設(shè)計(jì)與開(kāi)發(fā)技巧
1. UI設(shè)計(jì)理念與開(kāi)發(fā)技巧
2. 菜單實(shí)戰(zhàn);
3.Google Map、WebView、Gallery、Spinner、Tab Layout、Grid View、Table layout、Relative layout、Linear layout實(shí)戰(zhàn);
2.2 ListView異步加載技術(shù)
1. 使用ListView異步加載技術(shù)的必要性
2. ListView異步加載技術(shù)編程實(shí)戰(zhàn)
2.3 ListView分頁(yè)加載技術(shù)
1. 使用ListView分頁(yè)加載技術(shù)的必要性
2. ListView分頁(yè)加載技術(shù)編程實(shí)戰(zhàn)
2.4 Widget編程實(shí)戰(zhàn)
1. Widget應(yīng)用場(chǎng)景
2. Widget編程實(shí)戰(zhàn)
2.5自定義TabHost
1. Tabhost的應(yīng)用場(chǎng)景
2. 自定義TabHost編程實(shí)戰(zhàn)
3. TabHost源碼剖析
2.6自定義標(biāo)題欄
1. 自定義標(biāo)題欄的應(yīng)用場(chǎng)景
2. 自定義標(biāo)題欄編程實(shí)戰(zhàn)
3.自定義標(biāo)題欄疑難問(wèn)題解析
2.7 PopupWindow
1. PopupWindow程序帶來(lái)的視覺(jué)沖擊
2. PopupWindow編程實(shí)戰(zhàn)
3. PopupWindow調(diào)試
2.8性能測(cè)試和優(yōu)化
1. 如何進(jìn)行性能測(cè)試
2. 性能測(cè)試實(shí)戰(zhàn)
3. 優(yōu)化法則和編碼應(yīng)該注意的地方
第二天
1.1圖片拖拉功能
1 圖片拖拉功能應(yīng)用場(chǎng)景
2 圖片拖拉功能編程實(shí)戰(zhàn)
1.2多點(diǎn)觸摸與縮放功能
1 多點(diǎn)觸摸與縮放功能應(yīng)用場(chǎng)景
2 多點(diǎn)觸摸與縮放功能編程實(shí)戰(zhàn)
1.3 ANDROID中圖形編程實(shí)戰(zhàn)
1 使用LAYER LIST制作動(dòng)態(tài)相框
2 使用STATELIST實(shí)現(xiàn)不同狀態(tài)下圖片的切換
3 使用LEVEL LIST揭秘電池電量變換狀態(tài)
4 使用TRANSITION DRAWABLE實(shí)現(xiàn)動(dòng)態(tài)過(guò)渡效果
5 使用CLIP DRAWABLE揭秘水平進(jìn)度條
6 使用SHAPE DRAWABLE自定義幾何圖形
1.4廣播接受者BroadcastReceiver,短信******案例(接受到短信后上傳到服務(wù)器或發(fā)送到指定的號(hào)碼或者發(fā)送到指定的郵件中)
1.剖析廣播接收者,與JMS的比較,廣播接受者的IoC原理
2.短信監(jiān)聽(tīng)Android客戶端
3.服務(wù)器端搭建
4.通過(guò)網(wǎng)絡(luò)把接收到的短信上傳到服務(wù)器
5.把接收到的短信發(fā)送到指定的手機(jī)號(hào)碼或者郵件中
6.BroadcastReceiver的的生命周期和注意事項(xiàng)以及5秒鐘生命響應(yīng)時(shí)間的解決方案
1.5服務(wù)Service,電話******(每次開(kāi)機(jī)的時(shí)候自動(dòng)開(kāi)機(jī),電話來(lái)時(shí)錄音并上傳到服務(wù)器)
1.詳細(xì)剖析Service
2.構(gòu)建電話監(jiān)聽(tīng)的Service
3.使用BroadcastReceiver監(jiān)聽(tīng)開(kāi)機(jī)事件,并在開(kāi)機(jī)時(shí)啟動(dòng)電話監(jiān)聽(tīng)的Service
4.上傳音頻文件到服務(wù)器
5.關(guān)于Android安全體系的思考
1.6 SharedPreferences的讀寫(xiě)、SharedPreferences操作權(quán)限、從不同的包中讀取參數(shù)及源代碼剖析
1.SharedPreferences的讀
2.SharedPreferences的寫(xiě)
3.對(duì)SharedPreference操作權(quán)限分析
4.讀寫(xiě)不同包中的SharedPreference
5.源代碼剖析
1.7單元測(cè)試、日志、手機(jī)內(nèi)部文件的形式存儲(chǔ)數(shù)據(jù)及源代碼剖析
1.單元測(cè)試
2.日志
3.對(duì)手機(jī)的文件進(jìn)行讀寫(xiě):openFileInput()、openFileOutput()
4.對(duì)文件讀寫(xiě)的單元測(cè)試
5.對(duì)四種文件權(quán)限模式的測(cè)試
6.常用的文件讀寫(xiě)API簡(jiǎn)介
7.剖析源代碼
1.8 SDCard讀寫(xiě)、代碼重構(gòu)、源代碼剖析
1.構(gòu)建業(yè)務(wù)層
2.對(duì)業(yè)務(wù)層的單元測(cè)試
3.使用Activity調(diào)用業(yè)務(wù)層對(duì)SDCard進(jìn)行讀寫(xiě)
4.提取出幫助類(lèi),遵循MVC模式對(duì)代碼重構(gòu)。
5.源代碼剖析
1.9 SQLite管理工具類(lèi)、CRUD操作、分頁(yè)等及源代碼剖析
1.SQLite簡(jiǎn)介
2.SQLiteOpenHelper類(lèi)
3.CURD:execSQL()和rawQuery()
4.分頁(yè)
5.對(duì)getWritableDatabase()和getReadableDatabase()進(jìn)行源代碼分析
6.執(zhí)行流程和原理的深入徹底的剖析
7.源代碼剖析
2.0使用Android自身提供的API進(jìn)行CRUD操作、ListView的詳細(xì)講解及源代碼剖析
1.使用Android自帶的insert、update、query、delete等進(jìn)行CRUD操作
2.剖析insert、update、query、delete的源代碼
3.對(duì)ListView深入詳細(xì)的剖析,自定義視圖,自定義Adapter。
4.剖析Cursor的源代碼
5.關(guān)于SQLite和Cursor的“_id”問(wèn)題的剖析和解決方案
7.源代碼剖析
2.1 ContentProvider背景、用途,如何構(gòu)建ContentProvider,UriMatcher,ContentUris,對(duì)CotentProvider進(jìn)行單元測(cè)試、源代碼分析
1.ContentProvider背景、用途
2.構(gòu)建ContentProvider的詳細(xì)步驟
3.對(duì)URI的徹底剖析
4.分析UriMatcher,ContentUris
5.對(duì)ContentProvider的層代碼單元測(cè)試
6.ContentProvider的源代碼剖析
2.2基于通訊錄的開(kāi)發(fā)
1. 通訊錄的數(shù)據(jù)庫(kù)和數(shù)據(jù)表分析
2. 通訊錄ContentProvider的源碼剖析
3. 獲取所有的聯(lián)系人信息
4.添加聯(lián)系人
5.如何處理添加通訊錄記錄時(shí)的事物問(wèn)題
第三天
1.1深入Android測(cè)試,涵蓋Activity、Service、ContentProvider的測(cè)試等
1.Assertion
定制消息\靜態(tài)導(dǎo)入
2. 深入Assertion
3. TouchUtils類(lèi)
4. Mock對(duì)象
MockContext概述
IsolatedContext類(lèi)
對(duì)文件和數(shù)據(jù)庫(kù)的測(cè)試操作
MockContentResolver類(lèi)
5.基類(lèi)TestCase
沒(méi)有參數(shù)的構(gòu)造方法
傳遞參數(shù)的構(gòu)造方法
setName()方法
6.基類(lèi)AndroidTestCase
assertActivityRequiresPermission()
方法剖析和實(shí)戰(zhàn)
assertReadingContentUriRequiresPermission()
方法剖析和實(shí)戰(zhàn)
assertWritingContentUriRequiresPermission()方法剖析和實(shí)戰(zhàn)
7. Instrumentation
ActivityMonitor內(nèi)部類(lèi)剖析和實(shí)戰(zhàn)
8. InstrumentationTestCase類(lèi)
launchActivity和launchActivityWithIntent
方法
sendKeys和sendRepeatedKeys方法
runTestOnUiThread幫助方法
9. ActivityTestCase類(lèi)
scrubClass方法
10. ActivityInstrumentationTestCase2類(lèi)
構(gòu)造方法
setUp方法\tearDown方法\
testPreconditions方法 11. ProviderTestCase2<T>類(lèi)構(gòu)造方法實(shí)戰(zhàn)
12. ServiceTestCase<T> 構(gòu)造方法
13.TestSuiteBuilder.FailedToCreate Tests類(lèi)剖析
14. 在測(cè)試工程中使用external ibraries
1.2斷點(diǎn)續(xù)傳(一)類(lèi)似迅雷的多線程下載器(適用于任何類(lèi)型的文件下載)
1,多線程下載斷點(diǎn)續(xù)傳原理和流程圖
2,下載文件時(shí)Http協(xié)議協(xié)議詳解
3,多線程下載斷點(diǎn)續(xù)傳程序:設(shè)計(jì)服務(wù)端和Android端
4,Android端的內(nèi)容涉及IoC、多線程、SQLite數(shù)據(jù)庫(kù)、Handler、Http協(xié)議、緩存處理、意外關(guān)機(jī)時(shí)候的處理、編寫(xiě)框架、MVC、Service、Android中的I/O流、代碼調(diào)試、Activity的生命周期等
5,單元測(cè)試
6,軟件調(diào)試
1.3斷點(diǎn)續(xù)傳(二)多線程斷點(diǎn)文件上傳器(適用于任何類(lèi)型的文件上傳)
1,斷點(diǎn)續(xù)傳原理和流程圖
2,上傳文件的Http協(xié)議詳解
3,自定義自己的文件傳輸協(xié)議
4,服務(wù)端程序的編寫(xiě):文件的下載與實(shí)時(shí)數(shù)據(jù)的記錄、監(jiān)聽(tīng)模式、亂碼問(wèn)題的處理、并發(fā)問(wèn)題、黑客安全問(wèn)題
5,客戶端程序的編寫(xiě):Android內(nèi)存溢出問(wèn)題,Android中的Socket編程、大文件的傳輸、大文件傳輸時(shí)候的安全問(wèn)題
6,單元測(cè)試
7,軟件調(diào)試
1.4 Android客戶端表單數(shù)據(jù)的上傳
1,上傳基本的數(shù)據(jù)類(lèi)型
2, 上傳圖片等附件
3, 把代碼重構(gòu)為能夠上傳任意數(shù)量的字段和任意數(shù)量的附件的工具類(lèi)
4, 思考本地離線存儲(chǔ)/在線上傳技術(shù)方案
第四天
1.1 Android中Java與WebView中Javascript相互溝通
1,制作Android界面的新大陸
2, Java調(diào)用Javascript
3, Javascript調(diào)用Java
1.2: Android ndk中C通過(guò)JNI調(diào)用Java
1 本地C代碼調(diào)用Java中的Method
2本地C代碼獲得Java對(duì)象的屬性值
3 多個(gè)類(lèi)中有本地C代碼的調(diào)用
4 在本地代碼中創(chuàng)建Java對(duì)象
5 處理異常
1.3:ANDROID NDK中Java與C++溝通
1 Java代碼調(diào)用C++代碼
2 C++代碼調(diào)用Java代碼
1.4:NDK中的多線程編程
1 深度剖析Java、Dalvik VM、C/C++的運(yùn)行流程
2 Java中分配線程調(diào)用C/C++函數(shù)
3 C/C++本地代碼通過(guò)分配線程調(diào)用Java函數(shù)
1.5:Android手機(jī)功能開(kāi)發(fā)(20分鐘)
1 應(yīng)用程序控制硬件的起點(diǎn):getSystemService函數(shù)剖析;
2手機(jī)硬件功能開(kāi)發(fā)、Android底層方法的調(diào)用等
1.6瀏覽器開(kāi)發(fā)和自定義
1 瀏覽器定制和開(kāi)發(fā)的核心原理剖析
2 瀏覽器定制和開(kāi)發(fā)的技術(shù)手段剖析
3 瀏覽器定制和開(kāi)發(fā)實(shí)戰(zhàn)
1.7 HTML5時(shí)代:Device、Browser、Cloud
1 HTML5時(shí)代誰(shuí)最重要?
2 HTML5與Device
3 HTML5與Cloud
4 什么主導(dǎo)了HTML5時(shí)代?
1.8 Android應(yīng)用程序運(yùn)行背后秘密---WindowManagerService源碼剖析
1 Android應(yīng)用程序的main入口到底在哪里?
2 ActivityThread成為應(yīng)用程序的主線程的過(guò)程是什么?
3 Looper、MessageQueue、Handler背后的秘密;
4 Android的Activity、Service、Provider、Receiver啟動(dòng)的流程源碼剖析