1. <bdo id="8zfej"></bdo>
    <li id="8zfej"><meter id="8zfej"><th id="8zfej"></th></meter></li>

    南京中博教育

    全國(guó)咨詢電話:17368476151

    三分鐘了解中博教育
    當(dāng)前位置:南京中博教育 > 新聞動(dòng)態(tài) > 焦點(diǎn)資訊

    Java程序員如何轉(zhuǎn)Android開(kāi)發(fā)

    來(lái)源:南京北大青鳥(niǎo)? ? ? 作者:南京中博教育 ? ??

    說(shuō)Java和Android程序的區(qū)別: Android是主流智能手機(jī)的操作系統(tǒng),Java是一種開(kāi)發(fā)語(yǔ)言,兩者沒(méi)有好壞優(yōu)劣之分,只是兩種職業(yè)崗位的選擇。學(xué)安卓從事移動(dòng)互聯(lián)方向開(kāi)發(fā),學(xué)Java從事軟件、

    說(shuō)Java和Android程序的區(qū)別:

    Android是主流智能手機(jī)的操作系統(tǒng),Java是一種開(kāi)發(fā)語(yǔ)言,兩者沒(méi)有好壞優(yōu)劣之分,只是兩種職業(yè)崗位的選擇。學(xué)安卓從事移動(dòng)互聯(lián)方向開(kāi)發(fā),學(xué)Java從事軟件、網(wǎng)站開(kāi)發(fā)。而安卓上的應(yīng)用大多是Java編寫(xiě)的,所以建議在安卓前期的Java學(xué)習(xí)階段中,要用心學(xué)好。

    言簡(jiǎn)意賅的說(shuō)說(shuō)“轉(zhuǎn)”前的準(zhǔn)備:

      其實(shí)Java程序員要自學(xué)安卓開(kāi)發(fā)的基礎(chǔ)知識(shí)還是沒(méi)有什么難度的,畢竟語(yǔ)言相通,特性相似,閱讀安卓源代碼的門檻以比較低一些,作為能夠考慮“轉(zhuǎn)”的合格的程序員的你,自學(xué)能力和相關(guān)的基礎(chǔ)知識(shí)應(yīng)該不是問(wèn)題,學(xué)習(xí)安卓也相對(duì)比較輕松一些。

      所以Java程序員轉(zhuǎn)安卓開(kāi)發(fā)可以看做是一次“增量更新”,只需要學(xué)習(xí)一下安卓的基本組件:Activity、ContentProvider、Service、BroadcastReceiver;

      了解一下安卓中的Intent,Handler,Adapter以及各類事件的傳遞方式(onClick,onTouch等);

      同時(shí)輔助一定的代碼量,像JNI、AIDL什么的都可以看一下;你還要摒棄“UI元素像素位置”這個(gè)概念,安卓本身是允許通過(guò)設(shè)定元素位置來(lái)制作UI的,如果你這樣做導(dǎo)致的結(jié)果便是大批機(jī)器不適配,那么顯示效果就有點(diǎn)慘不忍睹了,所以不要妄想通過(guò)獲取屏幕大小來(lái)調(diào)整UI,像LinearLayout在swing或者swt上可有可無(wú)的東西,在安卓上是必須要精通的。

    北大青鳥(niǎo)軟件學(xué)校職業(yè)教育

    還有熟悉ide,安卓提供的開(kāi)發(fā)框架、Java及其他編程知識(shí)等。

    當(dāng)然,小編在此說(shuō)的只是九牛一毛,還有很多在開(kāi)發(fā)過(guò)程中需要注意的細(xì)節(jié)問(wèn)題是我們沒(méi)有提到的。

    下面小編跟大家分享一下前人關(guān)于技術(shù)開(kāi)發(fā)轉(zhuǎn)移動(dòng)應(yīng)用開(kāi)發(fā)的經(jīng)驗(yàn),希望對(duì)大家有借鑒的作用:

    因?yàn)榫唧w的開(kāi)發(fā)場(chǎng)景不一樣,目標(biāo)的讀者的經(jīng)驗(yàn)也各不一。分享一點(diǎn)轉(zhuǎn)型過(guò)程中,所需要補(bǔ)充的知識(shí)點(diǎn)和邏輯上的轉(zhuǎn)變。

    移動(dòng)開(kāi)發(fā)和PC上的開(kāi)發(fā)帶來(lái)了哪些不一樣?

    在我看來(lái),從2002年之后,傳統(tǒng)桌面的開(kāi)發(fā)者基本都轉(zhuǎn)向了J2EE/.NET/LAMP等以Web技術(shù)或者服務(wù)器端開(kāi)發(fā)技術(shù)為主的開(kāi)發(fā)方式。使用C/C++/MFC/Delphi等開(kāi)發(fā)C/S模式的用戶越來(lái)越少,甚至工作的需求也開(kāi)始變得越來(lái)越少。

    這樣在技術(shù)體系上,開(kāi)發(fā)者的經(jīng)驗(yàn)開(kāi)始基本上覆蓋在:

    1.HTML + CSS + JavaScript

    2.各種腳本語(yǔ)言(PHP/http://ASP.NET/JSP/Python/Ruby)操作服務(wù)器API

    3.服務(wù)器數(shù)據(jù)處理邏輯(O/R Mapping, 數(shù)據(jù)庫(kù)連接池,各種如AOP等設(shè)計(jì)模式,甚至DSL等等)

    4.大型服務(wù)器的架構(gòu)設(shè)計(jì)(分布式架構(gòu),各種負(fù)載均衡,服務(wù)器連接優(yōu)化)

    5.數(shù)據(jù)庫(kù)(分布式數(shù)據(jù)庫(kù),事務(wù)處理,大規(guī)模數(shù)據(jù)的存儲(chǔ)、查詢優(yōu)化)

    6.大數(shù)據(jù)處理(Hadoop, Hive)等等。

    那對(duì)于移動(dòng)開(kāi)發(fā)上需要什么?

      不管是Android / iOS /WP , 其實(shí)對(duì)于開(kāi)發(fā)的需求上逐漸回到了2002年之前,大概類比MFC/Delphi的時(shí)代,更加合適。

      移動(dòng)開(kāi)發(fā)者的技能需求發(fā)生了轉(zhuǎn)變,需要的經(jīng)驗(yàn)變成了:

      充分理解各移動(dòng)平臺(tái)的進(jìn)程架構(gòu)和程序生命周期邏輯(程序啟動(dòng),程序被系統(tǒng)suspend/kill, Services)

    1.界面設(shè)計(jì)(各種UI控件,事件處理)

    2.數(shù)據(jù)處理邏輯(客戶端緩存、多線程并發(fā))

    3.網(wǎng)絡(luò)數(shù)據(jù)處理

    4.平臺(tái)相關(guān)特性(系統(tǒng)API調(diào)用,系統(tǒng)通知機(jī)制等)

    5.各種性能處理。

    因此,在學(xué)習(xí)的路線和需要的經(jīng)驗(yàn)上有了不同。

    如果需要從非移動(dòng)開(kāi)發(fā)者往移動(dòng)開(kāi)發(fā)者進(jìn)行轉(zhuǎn)型,哪怕同樣使用的是Java語(yǔ)言,需要的就是了解不同的庫(kù)以及處理不同領(lǐng)域的具體問(wèn)題。

    在移動(dòng)設(shè)備的開(kāi)發(fā)上,我歸結(jié)為三大類問(wèn)題:性能的問(wèn)題,界面響應(yīng)的問(wèn)題,產(chǎn)品的穩(wěn)定性。這些是技術(shù)人員可以需要為注意和保障的。

    記得當(dāng)時(shí)iPhone出來(lái)后,讓人們看到了一個(gè)與傳統(tǒng)的“窗口”完全不同概念的邏輯:界面方面一個(gè)應(yīng)用占滿整塊屏幕,程序方面代碼也都是在嚴(yán)格的沙箱內(nèi)運(yùn)行。當(dāng)時(shí)我就意識(shí)到這將是一整套全新的規(guī)則體系,后來(lái)漸漸從表面往深層看,寫(xiě)了幾年?duì)€代碼慢慢我也有了點(diǎn)心得:

    1.淡化文件的存在,而凸顯應(yīng)用和工作流。

    2.盡量避讓主線程/UI線程,避免鎖界面。因?yàn)樽烂鎽?yīng)用鎖UI的話只不過(guò)是一個(gè)窗口,而移動(dòng)應(yīng)用會(huì)給人感覺(jué)是“手機(jī)”這個(gè)整體掛了...

    3.能迅速完成的操作/運(yùn)算就不要指望后臺(tái),自己的程序隨時(shí)可能被kill掉。后臺(tái)只留給VOIP、網(wǎng)絡(luò)操作之類的。

    4.盡量加快啟動(dòng)速度。移動(dòng)產(chǎn)品用的頻繁,但單次使用遠(yuǎn)比桌面要短,所以不要出現(xiàn)Photoshop那樣讓用戶傻等的情況。即使用個(gè)“假象”也要讓用戶覺(jué)得啟動(dòng)挺快的。

    5.同一個(gè)功能好有多種交互/操作方式。不像Windows一統(tǒng)桌面江湖,現(xiàn)在各個(gè)版本的android、iOS用戶之間使用習(xí)慣迥異,好能讓人們的習(xí)慣都能work。

    6.好不要讓UI控件太顯眼(比如街機(jī)游戲中碩大的搖桿遮住了人物),但也別太隱晦(猛犸瀏覽器4,哈哈哈)。

    7.用戶其實(shí)很在意耗電和發(fā)熱量,桌面用戶從不在乎…

    8.很多功能別人說(shuō)做不到或說(shuō)平臺(tái)不允許不開(kāi)放的時(shí)候,總有人用匪夷所思的奇葩手段實(shí)現(xiàn)了…

    從桌面端轉(zhuǎn)向移動(dòng)端,一定要認(rèn)識(shí)到二者不同的側(cè)重點(diǎn)。桌面端包括web更側(cè)重于邏輯復(fù)雜,高級(jí)的任務(wù),而移動(dòng)端的娛樂(lè)性明顯更強(qiáng)。

      就從操作方式說(shuō)起吧,桌面端主要靠鼠標(biāo)鍵盤(pán)和touchpad,所以操作精度要高得多,很容易將很多功能集成到一個(gè)界面里;但同樣的思路就完全不適用于移動(dòng)端了 (反例我是實(shí)在想不起來(lái)了,大家可以幫忙想想),相信一個(gè)cluttered ui的app,就算功能再?gòu)?qiáng)大,用戶盯著你的界面超過(guò)3s就會(huì)頭暈,點(diǎn)擊某個(gè)button要點(diǎn)好幾下才會(huì)成功,也必定是一個(gè)糟糕的app。

    那什么樣的操作方式是適用于移動(dòng)端的呢?

      ListView的滑動(dòng)操作就是一個(gè)很好的例子,不需要用戶任何的思考,只需順著期待的內(nèi)容出現(xiàn)的方向滑動(dòng),這樣 intuitive的設(shè)計(jì)便是王道。類似的設(shè)計(jì)還有來(lái)自Tweetie的下拉刷新,Android 4.0引入標(biāo)準(zhǔn)庫(kù)的ViewPager等等。上述的操作都有一個(gè)共同特點(diǎn)——手勢(shì)操作。既然移動(dòng)端(不管是手機(jī)還是平板)是拿在手上的設(shè)備,那手勢(shì)操作成為其殺手锏就毫不奇怪了,自然也就成了區(qū)分移動(dòng)端和桌面端的一個(gè)重要特質(zhì)。PeakJi大神的猛犸瀏覽器和輸入法(忘記名字了)同樣也體現(xiàn)了這一點(diǎn)。

      有了簡(jiǎn)單直觀的手勢(shì)操作,還有一個(gè)不得不提的feature——push notification。用戶很懶,一臺(tái)機(jī)器裝了上百個(gè)app,可能一個(gè)月你的app也就被打開(kāi)一兩次,這當(dāng)然不是你希望看到的。如果你的app是網(wǎng)站客戶端性質(zhì)的,那么push notification就是一個(gè)很好地利器了。怎么做呢?我總結(jié)了下面的流程:

    1. 與社交網(wǎng)絡(luò)連接,獲取用戶資料,分析用戶興趣

    2. 記錄用戶在你的網(wǎng)站或客戶端的使用習(xí)慣,逐漸逼近用戶真正的興趣

    3. 根據(jù)得到的用戶興趣,推送他感興趣的內(nèi)容

    可以看到,不僅僅是“通知”那么簡(jiǎn)單,像新浪微博那樣的,一天一條的palm news,多了只能讓人感到annoying,并不能起到和用戶很好的溝通的效果;只有推送用戶感興趣的內(nèi)容,才會(huì)引起他們的注意,增加你的app在用戶心中的權(quán)重。

      后一點(diǎn)我認(rèn)為很重要的,就是consistency,和操作系統(tǒng)要保持操作習(xí)慣的一致性。比如左上角的返回button,Android 4.0的ViewPager滑動(dòng)換標(biāo)簽等,這樣做大的好處就是降低了用戶的學(xué)習(xí)成本,讓你的app和OS融為一體。當(dāng)然在OS的大框架下,也不乏有新意的app,比如Android下的一款類siri應(yīng)用Maluuba,大膽地采用了Metro風(fēng)格的設(shè)計(jì),但操作起來(lái)并不會(huì)覺(jué)得陌生,大的原因就是 ViewPager的滑動(dòng)操作被保留了下來(lái)。

      以上是各位前人的一些經(jīng)驗(yàn),大家可以根據(jù)自己的情況吸收消化,下面快送一些可以幫助到大家的書(shū)籍:

    推薦一:Head First Java(中文版)(第2版)(涵蓋Java5.0)推薦理由:安卓應(yīng)用層和大部分framework層用的都是Java語(yǔ)言。

    推薦二:瘋狂Android講義推薦理由:知識(shí)點(diǎn)比較全,也比較新。

    推薦三:深入理解Android(卷1)推薦理由:作者的文筆流暢,見(jiàn)解獨(dú)到,而且系統(tǒng)地,深入地講解了Android系統(tǒng)原理。同時(shí)作者那種層層遞進(jìn),抽絲剝繭式的分析模塊的手法也非常值得學(xué)習(xí)。


    分享到:
    近期文章

    搶試聽(tīng)名額

    名額僅剩66名

    教育改變生活

    WE CHANGE LIVES

    主站蜘蛛池模板: 亚洲国产综合第一精品小说| 丁香六月纪婷婷激情综合| 狠狠亚洲婷婷综合色香五月排名| 天天综合日日噜噜噜| 激情综合色五月六月婷婷| 伊人色综合一区二区三区| 91精品国产综合久久香蕉 | 色狠狠色狠狠综合一区| 欧美激情综合亚洲一二区| 久久综合精品国产一区二区三区| 91精品综合久久久久久五月天| 精品久久综合一区二区| 久久久综合九色合综国产精品 | 久久综合给合久久狠狠狠97色69| 亚洲狠狠婷婷综合久久蜜芽 | 色婷婷五月综合欧美图片| 久久本道综合久久伊人| 亚洲国产日韩综合久久精品| 狠狠人妻久久久久久综合| 一本色综合网久久| 亚洲欧洲国产综合| 久久综合久久美利坚合众国| 久久本道综合久久伊人| 区三区激情福利综合中文字幕在线一区 | 成人综合久久精品色婷婷| 亚洲综合国产精品| 久久综合狠狠色综合伊人| 一本大道AV伊人久久综合| 成人伊人青草久久综合网破解版| 久久乐国产综合亚洲精品| 亚洲综合久久精品无码色欲| 婷婷久久香蕉五月综合加勒比| 亚洲综合在线另类色区奇米| 一本丁香综合久久久久不卡网站| 国产亚洲综合精品一区二区三区| 国产成人亚洲综合在线| 老色鬼久久综合第一| 色婷婷综合久久久久中文一区二区| 一本一道久久精品综合| 国产91色综合久久免费| 色综合天天娱乐综合网|