關于我們
書單推薦
新書推薦
|
Kotlin Android編程 本書的主要內容有:了解Kotlin基礎知識和Kotlin集合框架。探索Android基礎:操作系統(tǒng)和應用容器及其組件。了解線程安全以及如何處理并發(fā)。編寫低開銷順序異步工作。使用協(xié)程檢查結構化并發(fā)性,并了解通道如何支持協(xié)程通信。了解如何使用流完成異步數(shù)據(jù)處理。使用Android性能分析工具了解性能問題。使用性能優(yōu)化減少資源消耗。 為Android移動操作系統(tǒng)開發(fā)應用似乎很令人生畏,尤其是如果還需要學習一種新的編程語言:Kotlin,這是目前Android的官方開發(fā)語言。利用這本實用的書,Android開發(fā)人員將學習如何從Java過渡到Kotlin,包括Kotlin如何為獲得異步計算控制提供真正的優(yōu)勢。 前言JetBrains 創(chuàng)建Kotlin 有兩個原因:沒有一種語言可以填補Android 開發(fā)中使用(遺留)Java 庫的所有空白,另外一種新的語言將允許Android 開發(fā)引領趨勢,而不只是追隨潮流。2015 年2 月,Kotlin 10 正式發(fā)布。Kotlin 簡潔、安全、實用,并且強調與Java代碼的互操作性。當今使用Java 的任何地方都可以使用Kotlin:服務器端開發(fā)、Android 應用、桌面或移動客戶端、物聯(lián)網設備編程等。Kotlin 在Android 開發(fā)人員中迅速流行起來,Google 決定采用Kotlin 作為Android 開發(fā)的官方語言,這使得人們對這個語言的興趣暴漲。根據(jù)Android 開發(fā)者網站(https://developerandroidcom/kotlin),目前有超過60% 的專業(yè)Android 開發(fā)人員使用Kotlin。Android 的學習曲線相當陡峭:不可否認,它很難學習,更難掌握。對很多人來說,Android 開發(fā)人員成長的一部分,就是隨著時間的推移,要不斷處理Android操作系統(tǒng)與應用之間意想不到的交互。本書通過研究Android 中的這些問題,旨在向讀者深入詳盡地介紹這些情況。我們不僅會討論Kotlin 和Java,還將討論使用Android 時出現(xiàn)的并發(fā)問題,以及Kotlin 如何解決這些問題。有時我們會將Kotlin 與Java 進行比較,因為我們認為這樣做能更好地理解(特別是大部分讀者都可能有Java 背景)。我們可以利用實用示例演示如何彌補二者的差距,并展示大多數(shù)Kotlin 操作的底層概念都與Java 的相應概念很類似。我們將按主題組織這些任務,對涉及的大量信息進行結構化分解,以便軟件工程師掌握,并展示如何使應用健壯并且可維護。另外,熟悉Java 的用戶(包括Android 開發(fā)人員)會發(fā)現(xiàn),我們同時在Java 和Kotlin 中介紹各個常見任務時,它們的學習曲線會大大變平。在適當?shù)那闆r下,我們會討論其中一個語言或兩個語言的區(qū)別和缺陷,不過我們希望提供簡單易懂的任務示例,使讀者能夠掌握和適應現(xiàn)代范式,并立即本能地意識到更新代碼的重要性。盡管Kotlin 與Java 可完全互操作,但其他Java 應用開發(fā)(服務器端編程、桌面客戶端、中間件等)還沒有趕上Android 的程度。這很大程度上是由于Android的維護者(Google)強烈鼓勵其用戶做出改變。用戶逐步遷移到Kotlin,但更多的用戶仍然使用Java 來完成關鍵任務。我們希望這本書能成為Android 開發(fā)人員的生命線,讓他們能夠放心地利用Kotlin 提供的優(yōu)勢和簡單性。本書面向的讀者這本書面向超過600 萬Android 工程師中的每一個人。我們相信幾乎每個Android 工程師都能從這本書中受益?赡苡幸恍〔糠秩四芰骼厥褂肒otlin,即使如此,他們也能從我們介紹的信息中有所收獲。但事實上,我們面向的是絕大多數(shù)還沒有過渡到Kotlin 的人。這本書也適合那些在以Java 為中心的Android開發(fā)中已經接觸過Kotlin,但還沒有完全熟悉Kotlin 的人:場景1讀者精通Java,聽說過這種新的Kotlin 語言,并想嘗試一下。所以他們讀了一些在線教程,開始使用,效果很好。很快他們就意識到這不僅僅是一種新的語法。習慣用法不一樣了(例如,函數(shù)式編程,協(xié)程),現(xiàn)在可以采用一種全新的開發(fā)方式。不過他們缺乏指導。對他們來說,這本書將非常適合。場景2讀者是一個Java 開發(fā)小團隊的一員。他們對是否應該在項目中包含Kotlin 進行了討論。盡管據(jù)說Kotlin 與Java 100% 可互操作,但一些同事認為引入另一種語言會增加項目的復雜性。還有一些人認為,由于需要掌握兩種語言,這可能會限制能夠參與該項目的同事人數(shù)。如果能證明利大于弊,這些讀者可以用這本書來說服他們的同事。場景3有經驗的Android 開發(fā)人員可能使用過Kotlin 或用Kotlin 寫過一個功能,但需要完成具體工作時,還是會使用Java。我們發(fā)現(xiàn)現(xiàn)在就是這種情況,這本書會讓我們的生活更輕松。這也是我們周圍最常見的狀態(tài),很多Android 開發(fā)人員接觸過Kotlin,認為他們足夠了解這個語言,能夠在必要時編寫Kotlin代碼,但他們要么沒有意識到要么根本不相信數(shù)據(jù)類、不可變屬性和結構化并發(fā)的重要性。我們認為這本書能讓一個好奇的人成為一個盡心盡力的布道者。為什么寫這本書有大量的書介紹Android 如何工作,Kotlin 如何工作,或者并發(fā)如何工作。Kotlin因其易用性和更簡潔的語法在Android 開發(fā)中廣受歡迎,但Kotlin 為Android 提供的遠不止這些:它提供了解決Android 并發(fā)問題的新方法。我們寫這本書是為了深入地探討這些主題之間特定的關系。不論單獨來看還是合在一起,Android和Kotlin 都在快速變化。想要跟上所有這些變化可能很困難。我們把這本書看作是一個有意義的檢查點:它介紹了Android 的起源,當前的位置,以及隨著Kotlin 語言的成熟,將如何繼續(xù)與Kotlin 一起發(fā)展。本書內容組織有時我們會加入代碼片段的截圖,而不是常規(guī)的atlas 代碼格式。這對于協(xié)程和流特別有用,因為在截圖中可以清楚地看到掛起點,還可以獲得IDE 的類型提示。第1 章Kotlin 基礎和第2 章Kotlin 集合框架介紹了Kotlin 中實現(xiàn)Android編程的重大轉變。雖然這幾章中的信息足以為你奠定一個很好的Kotlin 基礎,不過后面的章節(jié)將更深入地探討更復雜/ 更高級的特性。熟悉Java 或類似語法結構的用戶會發(fā)現(xiàn)這種轉換非常自然。第3 章Android 基礎和第4 章Android 并發(fā)將提供與內存和線程相關的Android 系統(tǒng)基礎知識。與其他操作系統(tǒng)一樣,并發(fā)很難實現(xiàn)。第5 章線程安全到第11 章用Android 性能分析工具檢查性能問題將研究圍繞內存和線程的常見問題,同時指出Android 框架如何隨著時間的推移逐步演化,從而賦予開發(fā)人員更多的控制。同時,這些章節(jié)還展示了Kotlin 的擴展和語言特性如何幫助開發(fā)人員更快地編寫更好的應用。第12 章利用性能優(yōu)化減少資源消耗將探討使用強大的Android 開發(fā)工具來檢查底層性能和與內存相關的分析,從而能發(fā)現(xiàn)你從未真正了解的問題。這本書將為工程師提供原生Android 開發(fā)中常見任務的專業(yè)開發(fā)和管理實現(xiàn)。很多任務包括一個現(xiàn)實問題,然后是用Java 和Kotlin 實現(xiàn)的相應解決方案。需要進一步的解釋時,在解決方案后面會做一個簡單的比較,并強調Kotlin 語言的簡潔與自然。排版約定本書使用了下述排版約定:斜體(Italic)表示新術語、URL、電子郵件地址、文件名和擴展名。等寬字體(Constant Width)表示程序片段,以及正文中出現(xiàn)的變量、函數(shù)名、數(shù)據(jù)庫、數(shù)據(jù)類型、環(huán)境變量、語句和關鍵字等。加粗等寬字體(constant width bold)表示應該由用戶輸入的命令或其他文本。等寬斜體(constant width italic)表示應該由用戶輸入的值或根據(jù)上下文確定的值替換的文本。使用代碼示例這本書的補充材料( 代碼示例、練習等) 可以從https://githubcom/ProgrammingAndroidWithKotlin 下載。如果使用代碼示例時有技術問題或遇到其他問題,請通過以下email 聯(lián)系我們:bookquestions@oreillycom。這本書的目的就是要幫助你完成工作。一般來講,你可以在你的程序和文檔中使用這些代碼,不需要聯(lián)系我們來得到許可,除非你直接復制了大部分的代碼。例如,如果你在編寫一個程序,使用了本書中的多段代碼,這并不需要得到許可。但是出售或發(fā)行OReilly 書示例代碼則需要得到許可;卮饐栴}時如果引用了這本書的文字和示例代碼,這不需要得到許可。但是如果你的產品的文檔借用了本書中的大量示例代碼,則需要得到許可。我們希望但不嚴格要求標明引用出處。引用信息通常包括書名、作者、出版商和ISBN。例如Programming Androidwith Kotlin by Pierre-Olivier Laurence, Amanda Hinchman-Dominguez, G BlakeMeike, and Mike Dunn (OReilly) Copyright 2022 Pierre-Olivier Laurence andAmanda Hinchman-Dominguez, 978-1-492-06300-1。如果你認為你在使用代碼示例時超出了合理使用范圍或者上述許可范圍,可以隨時聯(lián)系我們:permissions@oreillycom。OReilly 在線學習平臺(OReilly Online Learning)近40 年來,OReilly Media 致力于提供技術和商業(yè)培訓、知識和卓越見解,來幫助眾多公司取得成功。公司獨有的專家和改革創(chuàng)新者網絡通過OReilly 書籍、文章以及在線學習平臺,分享他們的專業(yè)知識和實踐經驗。OReilly 在線學習平臺按照您的需要提供實時培訓課程、深入學習渠道、交互式編程環(huán)境以及來自OReilly 和其他200 多家出版商的大量書籍與視頻資料。更多信息,請訪問網站:https://wwworeillycom/。聯(lián)系我們任何有關本書的意見或疑問,請按照以下地址聯(lián)系出版社。美國:OReilly Media, Inc1005 Gravenstein Highway NorthSebastopol, CA 95472中國:北京市西城區(qū)西直門南大街2 號成銘大廈C 座807 室(100035)奧萊利技術咨詢(北京)有限公司針對這本書,我們還建有一個網頁,列出了有關勘誤、示例和其他信息?梢酝ㄟ^以下地址訪問這個頁面:https://oreilly/pak。如果對這本書有什么意見,或者詢問技術上的問題,請發(fā)送電子郵件至errata@oreillycomcn。有關我們的圖書和課程,更多新聞和信息請訪問我們的網站:http://wwworeillycom。我們的Facebook:http://facebookcom/oreilly。我們的Twitter:http://twittercom/oreillymedia。我們的YouTube:http://youtubecom/oreillymedia。致謝感謝我們的技術審校Adnan Sozuan 和Andrew Gibel,經他們之手,這本書得到了極大的增強和改進。還要感謝OReilly 的人員,他們幫助我們團結在一起,給予了我們所需的全部支持,終于將這本書變成現(xiàn)實,尤其是Jeff Bleiel 和Zan McQuade。感謝Roman Elizarov 和Jake Wharton 抽出時間與我們討論Kotlin 并發(fā)的發(fā)展方向和Android 的底層問題。感謝朋友、家人和同事們的支持。感謝Kotlin 社區(qū),以及花時間閱讀早期草稿并提供反饋的所有人。最后,這本書謹獻給Mike Dunn:合著者、同事、朋友和父親。我們非常想念他,希望這本書能讓他感到驕傲。 Pierre-Olivier Laurence是法國巴黎附近Safran Aircraft Engines公司的首席軟件工程師。Amanda Hinchman-Dominguez是Kotlin方面的Google Developer Expert,也是Groupon的Android工程師,活躍在全球Kotlin社區(qū)。G Blake Meike是Couchbase的高級軟件工程師,著有多本書,包括《Programming Android》。Mike Dunn是Oreilly Media的首席移動工程師,也是Oreilly 《Native mobile Development》一書的作者。 目錄
你還可能感興趣
我要評論
|