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