安卓開發一定要用 Java 嗎,其他語言開發方便嗎?


https://baijiahao.baidu.com/s?id=1618437759007795311&wfr=spider&for=pc

作者:Acoe
鏈接:https://www.zhihu.com/question/20370504/answer/499403681
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

Android APP開發除了使用Java,比較流行的還有Kotlin和Hybrid開發中普遍采用的JS+HTML。

在這幾門語言都掌握的情況下來說,方便程度可能就是JS+HTML > Kotlin > Java。當然除此以外還有其他的語言,比如Google的Flutter框架所采用的語言就是Dart,隨着Google的力推Flutter的社區和資源也在快速豐富起來,可能不久也會十分流行和便利。此外我見過的還有使用Python來開發APP的,沒見過但有所耳聞的語言就更多了。

但是從我已經從事Android開發多年的經驗來看,沒有豐富的資料和活躍且龐大的社區,一門語言用來做實際的項目級應用的開發,肯定遠遠稱不上方便。

 

所以方便與否我覺得應該從以下幾個角度考量——

1.上手難易:

比如最開始我是從Android原生開發上手的,也就是用Java開發Android APP,網上資料雖然參差不齊,但是各種版本的SDK接入、配置方式,以及各個IDE的使用方法是非常容易找到的。另外Java的生態非常成熟且社區異常龐大,也就是說不管是入門級的問題,還是開發過程中語言上遇到的困難,或者IDE使用過程中出現的不懂處,幾乎都可以在網上找到答案。而且現在Android開發者網站已經有官方的中文網址,已不再像當年光FQ的問題就足以勸退一大批小白。這里最方便的當推Java,其次就是JS+HTML模式的Hybrid框架,資源和社區也非常豐富,主要就是種類較多,需要做選擇題,我所用過的混合框架上手從簡單到復雜應該是H5+ -> Weex -> React Native。

2.語言的學習:

從編程小白的角度來看,Android APP的開發光方便還不夠,語言上手的難易程度也很重要。如果已經精通一門編程語言的話,去學習新的一門語言來做開發,更多的取舍可能像是在Java和Kotlin或者混合框架中做選擇。考慮的是編程效率和最終體驗的取舍。我只評價下我在項目級應用中實際用過的幾種開發語言,Java、Kotlin和Hybird (我用過的混合框架主要是JS+HTML模式,有H5+和Weex),Java和Kotlin最終實現的都是原生APP(Weex其實也是),可以說是最終用戶體驗Top 1級別的,混合開發的框架種類非常多,光這個就可以單獨開一篇文章來講,但總體最終開發出來的APP用戶體驗要弱一些,在越復雜的APP中體現得越明顯。但是編程效率上Hybird > Kotlin > Java,難易程度可能Kotlin 難於 Java(Kotlin中包含了大量的語法糖,加大了對語言機制理解的難度,但提高了代碼編寫的效率),JS+HTML最簡單。至於其他語言,我的理解是,更多的意義在於對已經掌握這門語言的開發者提供了一個不需要學習新語言就能開發中一個Android APP的途徑,稍小些的意義可能是新奇和探索,但是難易程度就無權評價了。

ps. 流行的Hybrid框架主要用的是JS+HTML語言做開發,但是React Native、Weex所用的語言是變種,ReactNative的學習門檻稍高,Weex基本上懂JS和HTML就完全沒問題,另外DCloud和ACloud兩家的混合框架都是純粹使用JS+HTML來做開發的,風格比較類似。Google的Flutter就完全是不一樣的一門語言Dart,看起來學習門檻不高,但是沒做深入了解就不置喙了。

3.工具的選擇:

現在Android Studio基本奠定了Android IDE一哥的地位,Eclipse風光一去不復返,所以用Java或者Kotlin開發,AS是首選Hybrid開發的選擇非常多,有前端十分鍾愛的WebStorm,我用過的DCloud家的Hbuilder很不錯(可以三端調試——瀏覽器、Android機、iOS機)。IntelliJ IDEA和Android Studio是同宗同源,也可以做Android APP的開發。其他小眾語言的開發工具可能還包括VS Code等等。所以從工具的便利上來說,Java、Kotlin和Hybrid開發的便利性都差不多,工具都很成熟且受眾很廣。

4.代碼的可維護性:

如果APP只是自己一個人開發,也不會交給其他人來維護的話,可以不看這里。否則就需要考慮APP開發完成后的維護問題,如果是企業級的APP就極大地需要考慮能接替你做版本更新、內容迭代、BUG修改的人選問題。比如我上家公司后面全面使用混合框架來開發APP,在開發流失后招了幾個月的人,也沒有找到對這個框架比較熟悉的人選,但是如果招原生Java開發的就會相對容易很多。

所以我的最終答案是其他語言做Android APP開發也有很方便的,但是對不同的人來說哪個最方便答案是不一樣的。

 

-------我是分割線-----------

另我廠VPGAME在招JAVA、測試、前端、運營。大牛巨多,老板超級nice。歡迎童鞋簡歷來擾(傳送門hr@vpgame.cn)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM