[技術門診241期]正確高效的Android應用程序開發
原創本期特邀《Android經典應用程序開發》一書作者韓超老師,針對Android應用程序開發的問題給予解答,歡迎網友積極提問,與專家一起討論!
查看本期門診精彩實錄:http://doctor.51cto.com/develop-255.html
參與***技術門診:OSSIM,企業信息安全管理利器
精選本期網友提問與專家解答,以供網友學習參考。
Q:韓老師,你好!我是一名具有十年JAVA程序經歷的程序開發者,由于工作需要轉型Android系統開發,現在屬于學習階段的新手,感覺憑借自己深厚的C語言基礎仍很吃力。請問像我這樣的熟練程序員如何盡快轉向移動開發,在轉型中我的優勢是什么?需要在那些方面做些改進?另外需要有那些技術上突破?請不賜解答!
A:你的問題比較典型。
***,你的語言基礎肯定是有優勢的,《Android經典應用程序開發》比較適合你這樣沒有語言障礙的人來閱讀。
第二,如果你是Java SE的工程師,Android UI的設計理念和AWT具有很大類似性,尤其控件和布局的組織方面。
第三,Android的圖形系統比較特殊,分為2D,3D和可繪制內容幾個部分,這是繪圖的原始內容。正如《Android經典應用程序開發》第五章所介紹的那樣。
第四,你想讓轉入移動開發,需要了解嵌入式系統和桌面的區別。Android自動適應各種小屏幕的特點,是你在UI的時候需要注意的。
第五,技術上的突破,***的方向就是通過Android應用開發,轉向系統開發。
Q:韓老師,您好,我接觸android的時間不長,但是我覺得安卓的編程跟linux編程是差不多的,是不是先掌握了linux編程會比較好一點呢?
A:如果你想進行Android應用的開發,暫時不需要Linux的技術,學習Java編程技術即可。如果你想進行Android系統的開發,并且關注底層,那么:Linux是本,Android是末。
Q:韓老師您好,學習android不久,從目前形勢看,android再火3年左右吧!之后應該會慢慢下滑——,從長久方面看,J2ee 和 android,哪個方面更合適?
A:首先,對于技術的未來的走向,我不做估計。我想你的估計看中的不是技術本身,而是技術給個人帶來的內容。其次,不要把籌碼都壓在一個技術上,IT發展很快,轉型是每個工程師的必由之路。Java EE用于服務器端,Android用于嵌入式系統,二者原本應用領域不同。第三,關于Java EE(注意:J2ee是其舊名字)對于Java系統的開發,并不應該認為Java EE就高于Java SE,Java SE又高于Java ME,它們是Java在不同領域的應用,技術本身并無高低之分。從事JavaEE但是只做配置性工作的工程師,也是很初級的。Java SE是關鍵的基礎,要成為一個真正有底蘊的工程師,決不可以繞過Java SE直接接觸Java EE。Java SE的編程技術,類庫是基礎(與Android類似),還有一些特殊的技術,例如JMX, JAXP,IDL,RMI等等。Java EE本身就是Java SE的一個“增量”,關注CS架構,業務層,Bean等。想進行實際的Java EE開發,還是要以Java SE為基礎。當然目前有些人的確是在脫離實現的情況下,空談Java的架構和概念,我個人認為這不是正確的做法。
Q:老師您好,我發現現在越來越多的人已經進軍android了,就像之前的java一樣,人越來越多了。各種培訓班也開始培訓android了。所以我覺得做android ui或應用層面的開發,或許會淪落為和之前的java開發人員一樣,人多肉不是那么多的情況。想請教老師的是如何避免自己陷入這樣的困境呢?我們應該學習些什么知識來強大自己呢?我看到很多老師推薦android系統級的開發或者移植。那么如果選擇系統級的開發和移植的話 您認為選擇專于那一塊會更好一些,因為畢竟一個人的精力有限,況且我們也應該術業有專攻。
A:你好,你遇到的問題是一個普遍問題,我依次作出幾點說明:
***,可以明確地說,“java開發人員淪落”是一個錯誤的看法實際上是“低端的java開發人員淪落”Java系統博大精深,除了Java SE之外還有Java ME,Java EE和JavaFX涉及到你的電腦以及你所使用的網絡的各個方面正是由于國內急功近利的開發和培訓,產生了很多Java ME手機開發的低端工程師他們的技術是短期催生的,技術底蘊淺,并且進行Java系統中較為簡單的Java ME開發因此,他們的淪落是必然結果這并不代表Java技術的淪落,想要了解Java即使,建議你去看看英文的官方網站。
第二,關于“android ui或應用層面的開發”這部分的難度要大于Java ME手機開發但是,這部分的難度也不是太大,如果只是淺淺地學,淪落是必然的《Android經典應用開發》涉及的內容也多余UI層面學習好了這種應用開發,你會有一些轉型的方向“非典型應用”,“系統級應用”,“系統定制”。
第三,關于“系統級的開發和移植”這是非常有前途的開發方面我的另外兩本書《Android系統原理和應用開發》和《Android系統級深入開發-移植和調試》是系統級方向的。有幾個要點你可以參考:
[*] 如果不認真打好Linux基礎,這部分就不用想了
[*] 如果你熟悉了Linux用戶空間的開發,做Android框架開發比較容易
[*] 如果你進一步熟悉了Linux驅動開發,做Android移植比較容易
Q:關注以下問題:
1、Android在做屏幕適應時,除了建立多套Layout,有沒有其他好的方法?
2、Android開發,如果不做底層開發,僅作應用開發,發展錢途如何?
3、Android在商業應用軟件移動化中有沒有發展空間?
4、做其他移動平臺開發的如何快速轉入Android?
A:1.一個Layout可以自適應,也可以采取排列組合的方式建議參考《Android經典應用開發》的3.2和7.5。
2. 有一定的前途,但是你要注意一個問題僅做應用開發≠僅做典型應用開發典型應用是基礎,精通后,你可以過渡到非典型的引用開發我在隨后的其他書籍中會有所介紹。
3.現在還沒有看到很明確的前景,在tablet平板電腦中可能有所發展。
4.這要看你是什么平臺的。如果做是Java ME應用的,轉入Android應用還算容易對于Android底層開發,必須從Linux開始,我在前面的出版的書籍《Android系統原理和應用開發》、《Android系統級深入開發-移植和調試》已經強調過多次。