編輯推薦
《AIR Android應用開發實戰》海報:
內容簡介
《AIR Android應用開發實戰》由資深Adobe技術專傢兼資深Android應用開發工程師親自執筆,既係統全麵地講解瞭如何利用Adobe AIR技術開發Android應用,又細緻深入地講解瞭如何將已有的基於PC的AIR應用移植到Android設備上。不僅包含大量實踐指導意義極強的實戰案例,還包括大量建議和優佳實踐,是係統學習AIR Android應用開發不可多得的參考書。
《AIR Android應用開發實戰》共16章,分為五個部分:準備篇(1~2章)主要介紹瞭利用AIR開發Android應用之前需要瞭解的基本信息、開發環境的搭建,以及一個簡單的AIR Android應用開發的全過程,旨在讓讀者對AIR Android應用開發有一個全麵清晰的認識;基礎篇(3~10章)對AIR移動開發技術進行瞭係統而全麵地講解,包括移動設備上的用戶交互方式、加速計的使用、地理定位功能、整閤係統程序、訪問設備資源、網絡通信、多媒體、文件和數據庫等,以及程序的調試和發布;進階篇(11~13章)以AIR桌麵應用開發為參照對象,講解瞭AIR移動開發的重點和難點,如何針對移動設備進行界麵設計,如何提高用戶體驗,以及如何提升程序的性能等,作者分享瞭大量具有實際意義的技巧和優佳實踐;實戰篇(14~15章)詳細講解瞭一款遊戲的開發過程,將AIR移動技術和Flash Web技術靈活地結閤瞭起來,展現瞭Flash技術在移動平颱上的巨大潛力;高級篇(第16章)講解瞭AIR 3.0的新特色——本地擴展,本地擴展為AIR技術提供瞭超強的擴展能力,使得開發者可以擺脫AIR的技術局限性。
作者簡介
邱彥林,(網名:walktree)資深Adobe技術專傢和資深Android開發工程師,精通ActionScript 2、ActionScript 3、Flex、FMS等;有多年Flash相關技術開發經驗,開發瞭大量Flash/Flex項目,是開源項目as3-pdf reader的創建者,並維護至今,在Adobe技術社區有較高的知名度和影響力。國內Android應用開發的先驅者之一,對Android應用開發也有非常深入的研究,尤其精通AIR Android應用的開發。他對PHP和Python相關的技術也有一定的研究。
此外,他還是一位頗具經驗的技術撰稿人和技術作傢,曾經在社區和《程序員》雜誌上發錶瞭大量技術文章,著有《Flex第一步》。
內頁插圖
精彩書評
本書算得上是AIR移動開發方麵的優秀之作,全麵而深入地講解瞭如何使用AIR技術開發Android應用。令人印象特彆深刻的是,本書在多點觸控與重力感應等移動開發的關鍵技術上有深入的探索。本書是不同水平層次的AIR移動開發者都值得閱讀並研究的實戰教材。
——Flash開發者大會
Adobe的AIR移動開發技術是未來移動開發跨平颱技術的主流之一。十多年來Flash遊戲與應用開發的成熟奠定瞭它的基礎,而Flash通過AIR來開發移動端應用的便利性和實用性,已經受到瞭業界的青睞。本書的齣版可謂是順應時代的要求,書中總結瞭作者多年來在AIR應用開發領域的經驗,希望廣大Flash開發者能從中受益!
——天地會全球RIA開發者社區/Adobe官方認證社區冠軍
AIR移動開發技術在Adobe未來10年的發展戰略中有非常重要的地位,關乎到Adobe在移動開發領域的地位和話語權,所以Adobe-直在大力投入。AIR移動開發技術是Flash開發者的福音,它不僅能讓Flash開發者利用原有的知識迅速開發齣基於各種移動平颱的應用,而且還能將已經存在於PC桌麵的AIR應用便利地移植到各種設備上。Android應用開發目前在移動開發領域如火如荼,本書專門講解瞭如何利用AIR移動開發技術開發基於該平颱的應用。本書內容非常全麵,各種理論、開發方法和技巧均覆蓋到瞭,適閤係統學習;且本書實戰性也-非常突齣,包含大量案例,可操作很強。此外,本書內容也不乏深度,對性能優化等高級內容也進行瞭探討,而且還包括一些優佳實踐。
——艾睿論壇專注Flex開發
隨著ANE、Alchemy的齣現,Native的特性和運行性能都得到很大的提升。藉助AIR跨平颱和高效開發的優勢,AIR已完全具備開發商業産品的能力。本書針對AIR for Android開發,詳細地介紹瞭手勢、加速計、地理定位等移動特性開發細節,很適閤AIR for Android初學者係統學習。在本書指導下,讀者可以快速學習AIR for Android開發的核心知識,省去走彎路的時間。
——李佳宸Adobe專傢組成員、瑞研社區創始人、Flash開發者大會組織者、AIR移動研究小組委員
2007年通過Flex與彥林相識,3年後,在Flash開發者大會上再次和他相遇,5年後的今天,彥林帶給我驚喜,他將自己在AIR和Android應用開放方麵的經驗係統總結瞭齣來並集結成書。迫不及待地看瞭樣章,簡明扼要是給我的第一印象。插圖不多,但恰到好處。說到關鍵點時,給齣瞭帶有注釋的示例代碼,言簡意駭,能讓讀者始終保持清晰的思路。對於想開發移動AIR的同學來說,本書無疑是一本不錯的教材。希望能藉著此類書籍,讓國內的移動AIR開發者隊伍能更快地發展壯大,讓Flash技術更快地滲透到移動互聯網。
——Y.Boy資深Flash技術專傢就職於騰訊
目錄
前言
第一篇 準備篇
第1章AIR Android開發簡介
1.1 開發之前需要瞭解的信息
1.1.1 AIR Android開發的可行性
1.1.2 開發過程中常見的問題
1.1.3 優勢和局限性
1.2 搭建開發環境
1.2.1 安裝Android SDK
1.2.2 使用Flash Professional CS5
1.2.3 使用Flash Builder 4.5
1.2.4 構建開源的開發環境
1.3 實戰:一個簡單的AIR項目
1.4 本章小結
第2章 第一個AIR Android程序:翻轉黑白棋
2.1 遊戲的設計思路
2.2 像往常一樣編寫ActionScript代碼
2.2.1 創建棋子類Grid
2.2.2 編寫主類Main
2.3 設置程序屬性
2.3.1 瞭解應用程序描述文件
2.3.3 設置訪問權限
2.4 打包APK文件
2.5 安裝和運行程序
2.5.1 使用模擬器運行程序
2.5.2 在真機上運行程序
2.6 本章小結
第二篇 基礎篇
第3章 處理用戶交互
3.1 關於多點觸摸
3.2 處理觸摸事件
3.2.1 使用TouchEvent類/
3.2.2 觸摸事件與鼠標事件的區彆
3.3 處理手勢動作
3.3.1 放大與縮小手勢
3.3.2 鏇轉手勢
3.3.3 Swipe手勢
3.4 本章小結
第4章 加速計
4.1 Accelerometer API用法
4.2 重力小球實例
4.2.1 如何模擬重力場
4.2.2 繪製小球
4.2.3 讓小球總是掉到屏幕下方
4.2.4 為小球設置圍牆
……
第三篇 進階篇
第四篇 實戰篇
第五篇 高級篇
前言/序言
《Android應用開發實戰:從入門到精通》 第一章:Android開發環境搭建與初識 本章將帶領您一步步完成Android開發所需的環境搭建,包括Java JDK的安裝與配置、Android Studio的下載與安裝,以及Android SDK的設置。我們將詳細介紹Android Studio的界麵布局、常用視圖以及項目創建的基本流程。您將學習如何創建一個“Hello, World!”應用,並通過模擬器或真機運行,初步感受Android應用的生命周期。同時,本章還將深入講解Android項目的基本結構,包括AndroidManifest.xml文件、res資源目錄、java源文件目錄等,讓您對Android項目的構成有一個清晰的認識。 第二章:Android四大組件詳解 Android應用的核心功能由四大組件驅動:Activity、Service、Broadcast Receiver和Content Provider。本章將對這四大組件進行深入剖析。 Activity: 您將學習Activity的生命周期(onCreate, onStart, onResume, onPause, onStop, onDestroy),理解Activity之間的跳轉與傳值(Intent),並掌握Activity棧的管理機製。我們將探討Activity的各種啓動模式,以及如何在不同的場景下有效地使用它們。此外,還會介紹Fragment,作為Activity的輕量級補充,用於構建靈活的用戶界麵。 Service: Service是用於在後颱執行長時間運行操作或提供其他應用無法直接訪問的功能的組件。本章將講解Service的創建、啓動(startService, bindService)與停止,以及Service的生命周期。您將學會如何創建前颱Service,實現用戶可見的後颱任務,並通過AIDL(Android Interface Definition Language)實現進程間通信。 Broadcast Receiver: Broadcast Receiver是用於接收係統廣播和自定義廣播消息的組件。您將學習如何注冊廣播接收器(靜態注冊和動態注冊),如何發送廣播(sendBroadcast),以及如何響應各種係統事件,例如網絡狀態變化、電池電量變化等。 Content Provider: Content Provider用於管理共享數據集,並允許其他應用程序訪問您的數據。本章將講解Content Provider的基本概念,如何創建自己的Content Provider來暴露數據,以及如何查詢、插入、更新和刪除數據。您還將瞭解Android係統提供的內置Content Provider,例如Contacts Provider和Media Provider。 第三章:用戶界麵(UI)設計與交互 一個優秀的應用離不開友好的用戶界麵。本章將全麵介紹Android的UI設計。 XML布局: 您將學習使用XML來定義用戶界麵的結構和外觀。我們將深入講解各種常用布局容器,如LinearLayout、RelativeLayout、FrameLayout、ConstraintLayout,並介紹如何通過它們來組織UI元素。 常用UI控件: 本章將詳細介紹各種UI控件的使用,包括TextView、EditText、Button、ImageView、CheckBox、RadioButton、Spinner、ListView、GridView、RecyclerView等。您將學習如何設置控件的屬性,如文本、顔色、圖片、大小、對齊方式等,並掌握如何通過代碼動態修改UI元素。 事件處理: 用戶與應用程序的交互通過事件處理來實現。您將學習如何為控件設置點擊監聽器、文本改變監聽器等,並通過迴調方法來響應用戶的操作。 Material Design: 本章還將引入Google的Material Design設計規範,學習如何為您的應用設計齣更具現代感、更一緻性的UI。您將瞭解Material Design中的一些核心概念,如CardView、FloatingActionButton、Snackbar、Toolbar等,並學習如何將其應用到您的項目中。 第四章:數據存儲與管理 應用程序需要有效地存儲和管理數據。本章將探討Android中多種數據存儲方案。 SharedPreferences: 用於存儲少量鍵值對數據,例如用戶偏好設置。您將學習如何讀寫SharedPreferences數據,並瞭解其使用場景。 SQLite數據庫: 對於結構化數據,SQLite是Android內置的強大關係型數據庫。本章將詳細講解SQLiteOpenHelper的使用,如何創建數據庫錶、執行SQL語句(查詢、插入、更新、刪除),並介紹SQLiteDatabase對象的常用方法。您還將學習如何使用Room Persistence Library,一個Android Jetpack組件,簡化SQLite數據庫的訪問。 文件存儲: 您將學習如何在內部存儲和外部存儲中讀寫文件,理解不同存儲方式的權限要求和安全性。 Content Provider(進階): 在本章中,我們將迴顧Content Provider,並深入講解如何利用它來實現應用之間的數據共享和同步。 第五章:網絡通信與數據獲取 現代Android應用高度依賴網絡通信來獲取和同步數據。本章將帶您進入網絡編程的世界。 HTTP協議基礎: 簡要介紹HTTP協議的工作原理,包括請求方法(GET, POST等)和響應碼。 網絡請求庫: 我們將重點介紹並實踐使用Volley和Retrofit這兩個強大的第三方網絡請求庫。您將學習如何使用它們來發送HTTP請求,處理JSON、XML等格式的數據,以及處理網絡錯誤和異常。 JSON與XML解析: 學習使用Gson、Jackson等庫來解析JSON數據,以及使用DOM、SAX等方式解析XML數據,將網絡獲取的數據轉化為Java對象。 異步處理: 理解網絡請求的異步性,並學習如何使用AsyncTask、Handler、RxJava等技術來在後颱綫程執行網絡操作,避免阻塞UI綫程。 網絡權限管理: 學習如何在AndroidManifest.xml文件中聲明網絡訪問權限。 第六章:後颱任務與服務進階 在本章中,我們將進一步深入探討後颱任務和服務的相關內容,以應對更復雜的應用場景。 WorkManager: Android Jetpack推齣的WorkManager是處理可延遲、可保證執行的後颱任務的首選方案。您將學習如何使用WorkManager來安排周期性任務、一次性任務,並處理任務的約束條件(如網絡可用、設備充電等)。 JobScheduler: 瞭解JobScheduler的工作原理,以及它與WorkManager的區彆和聯係。 後颱服務優化: 討論如何優化後颱服務的性能,減少電池消耗,例如使用WorkManager替代傳統的Service來實現後颱任務。 進程間通信(IPC)進階: 除瞭AIDL,本章還將介紹其他IPC機製,如Messenger,並分析它們在不同場景下的適用性。 第七章:多媒體處理 本章將指導您如何為應用添加多媒體功能。 圖片處理: 學習使用ImageView展示圖片,使用Glide或Picasso等圖片加載庫來高效加載和緩存網絡圖片。您還將學習如何進行圖片的縮放、裁剪和鏇轉。 音頻播放: 使用MediaPlayer類來播放音頻文件,包括本地音頻和網絡流媒體。學習如何控製音頻的播放、暫停、停止,以及處理播放狀態。 視頻播放: 使用VideoView或TextureView來播放視頻文件,並學習如何實現視頻的播放控製。 相機API: 學習如何調用設備的相機來拍照或錄製視頻,並將捕獲的媒體文件保存到設備中。 第八章:傳感器與定位服務 本章將帶領您探索Android設備豐富的傳感器功能以及如何獲取用戶的位置信息。 常用傳感器: 學習如何訪問和使用設備內置的傳感器,例如加速度計、陀螺郎、光綫傳感器、距離傳感器等,並理解它們的工作原理。 定位服務: 學習使用LocationManager和FusedLocationProvider API來獲取設備的GPS、Wi-Fi或基站定位信息。您將瞭解不同定位模式的區彆,以及如何處理定位權限。 地圖集成: 學習如何將Google Maps集成到您的應用中,顯示地圖、標記位置、繪製路綫等。 第九章:通知與消息推送 通知是Android應用與用戶溝通的重要方式。本章將詳細講解通知的創建和管理,並引入消息推送的概念。 通知的創建與顯示: 學習如何創建不同類型的通知,包括基本通知、帶大文本通知、帶圖片的通知等。 通知渠道(Notification Channels): 理解Android O(API 26)及以上版本中通知渠道的重要性,並學習如何為通知設置不同的優先級和行為。 通知操作: 為通知添加可點擊的操作按鈕,讓用戶可以直接在通知中執行特定任務。 消息推送(Push Notification): 介紹消息推送的基本原理,以及如何集成Firebase Cloud Messaging(FCM)等服務來實現跨平颱的消息推送功能。 第十章:應用打包、發布與優化 在應用開發完成後,您需要將其打包並發布到應用商店。本章將涵蓋這方麵的內容。 應用簽名: 理解應用簽名的重要性,學習如何生成簽名密鑰並為應用簽名。 APK與AAB打包: 學習如何生成APK(Android Package)和AAB(Android App Bundle)安裝包。 應用商店發布流程: 介紹Google Play Store等應用商店的發布流程,包括創建開發者賬號、填寫應用信息、上傳安裝包、設置價格和發布區域等。 性能優化: 探討提升應用性能的常見方法,包括內存優化、CPU優化、UI渲染優化、減少電量消耗等。 混淆與ProGuard: 學習使用ProGuard或R8對代碼進行混淆和優化,減小APK體積並提高安全性。 第十一章:Android Jetpack組件深入 Android Jetpack是Google提供的一套庫、工具和指導,旨在幫助開發者更輕鬆地開發齣高質量的Android應用。在本章中,我們將深入探討Jetpack的幾個核心組件。 ViewModel: 學習如何使用ViewModel來管理UI相關的數據,並在配置更改(如屏幕鏇轉)時保留數據。 LiveData: 理解LiveData作為可觀察的數據持有者的優勢,以及它如何與ViewModel結閤使用,實現高效的UI數據更新。 Navigation Component: 學習使用Navigation Component來簡化Fragment之間的導航,構建流暢的用戶體驗。 Room Persistence Library(迴顧與進階): 再次深入講解Room,包括其注解的使用、DAO(Data Access Object)的設計,以及如何處理數據庫遷移。 Paging Library: 學習如何使用Paging Library來高效地加載和顯示大量列錶數據,解決內存溢齣問題。 第十二章:進階主題與最佳實踐 本章將觸及一些更高級的Android開發主題,並總結一些實用的最佳實踐。 依賴注入(Dependency Injection): 介紹依賴注入的概念,並學習如何使用Hilt或Dagger等依賴注入框架來管理應用的類依賴,提高代碼的可測試性和可維護性。 單元測試與集成測試: 學習如何為您的Android應用編寫單元測試和集成測試,使用JUnit和Espresso等工具來確保代碼質量。 Kotlin在Android開發中的應用: 隨著Kotlin成為Android官方推薦的開發語言,本章將簡要介紹Kotlin的特性,以及如何將其與Java協同使用,或純Kotlin開發。 性能監控與調試工具: 介紹Android Studio中的性能分析工具,如CPU Profiler、Memory Profiler、Network Profiler,幫助您診斷和解決性能問題。 安全編碼實踐: 討論Android應用開發中的安全問題,如數據加密、防止SQL注入、安全地處理敏感信息等。 通過本書的學習,您將能夠獨立開發齣功能豐富、性能優越、用戶體驗良好的Android應用程序,並為更深入的Android開發打下堅實的基礎。