閱讀993 返回首頁    go 阿裏雲 go 技術社區[雲棲]


這些Android疑惑,你是否也遇到過?

這是社區第255期技術門診時一些午飯的提問,以及朱老師耐心的解答。特整理在一起,供大家學習,參考,希望大家能從別人的問題及老師的解答中解決掉自己心中類似的困惑(原專題地址:https://doctor.51cto.com/develop-269-3.html)。(紅色字體為解答部分。)
一: 
個人如何從事Android開發。在GoogleMarket關閉對中國程序員的上傳權限後,中國的個人Android開發人員將何去何從?
其實GoogleMarket是剛開始穀歌為推廣Android而采取的一種激勵措施,具體關閉原因我們隻能是猜測。但是無論關閉還是以後重開,畢竟Android的發展前景喜人。我們的國內團隊總不能盯著GoogleMarket這一小小的市場來尋求盈利吧。現在的人才市場對Android人才的需求量巨大,無論是個人團隊和公司團隊,不愁有好的方向。
二、
先來頂一個。想問老師一個關於個人android發展的困惑。
我是去年開始4月份學的java,之後十月份開始學了android,做了7個多學的開發,也就是做過兩三個商業項目,然後現在在一個公司做android自動化測試。以後也想著繼續做開發,隻是現在在android學習上迷茫了起來,不知道該怎麼學下去,簡單的應用能做一點,牽涉到底層就不會了。我不是軟件專業的學生,數據結構這類的都沒學過,隻能說現在隻會一點javaandroid。想深入發展就不知道該怎麼進行下去。也想學習一點數據結構,編程思想,或者android底層的東西,但是不知道該怎麼學習,該看些什麼書?怎樣學習效率才高一點。。。。。這個問題,我也谘詢過其他的老師,隻是感覺還是很困惑,想聽聽您的指點。

我感覺你的學習速度還是太快,有點拔苗助長的感覺。學編程應該先打好基礎,然後多實踐,再在項目開發實踐中不斷的積累經驗。Java便是一門浩瀚的編程語言,從桌麵到Web,再到移動開發,每一個方麵都需要你用數年才能完全掌握。

看來你將來向android應用開發方麵發展,所以在此建議你先打好Java語言的基礎,語法等知識一定要深入掌握。然後才可以學習Java數據結構和算法的問題,隻有經過上述過程之後,你以後的android學習之路就會十分輕鬆。
android隻是比Java多了模擬器和幾個控件而已,而這些控件的功能都是通過調用底層接口實現的。了解底層知識確實可以體會android的奧秘,但是這一切是建立在具備Lnux、C、C++知識的基礎之上的。如果你隻想向android應用發展,建議隻看一些底層中的常見接口知識,其餘的深入知識可以忽略。
三、
想關注下Android的前景如何?謝謝!

Android
是目前市場占有率最高的智能手機操作係統,因為他的操作係統是開源的,所以深受廠商用戶和程序員的喜愛。既然這麼受歡迎,所以發展前景也及其樂觀,不但在智能手機和平板電腦中得到了應用,並且相關的智能電視產品也講馬上問世。至於未來,誰說Android就不能成為PC機的主流係統之一呢?

四、
   經過三星蘋果大戰,三星敗了,勢必造成整個安卓廠商的動搖,一個係統沒有硬件的支持,也就很難維持他的生存,所以,這次動蕩也勢必造成安卓一定的結構,那麼,在未來的世界了安卓會不會像塞班那樣推出?
   其實我們大可不必擔心Android的市場前景,這一點以Google今天的地位便可證明一切。長久以來,Google一直是以軟件起家,如果現在硬要開發完全自己的硬件產品和自己的Android係統相配合,就注定隻能做蘋果的追趕者,超越更是遙遙無期。所以可以大膽的判定,在未來一段時間內,Google依舊會走重點發展軟件之路,將主要精力用在Android的係統升級之上,硬件產品例如摩托羅拉等隻是輔助工作,並且現在的摩托羅拉還不如收購前精彩。

現在的Android已經形成了固定的占有率,相信在未來一段時間內,也會保持這個占有率。相信下一步Google的工作重心將是係統用優化和UI架構,以極力提高用戶體驗為首要目標。


至於塞班係統,並不是係統不夠好,而是諾基亞忽視了對他的升級。沒有考慮到社會發展的更高級需求,諾基亞當時是站在金字塔的頂端不求上進。可以說是諾基亞毀了塞班,對塞班沒有“嗬護備至”的升級。現在的Android的情況和塞班不一樣,現在Google對Android的升級很頻繁,一年一大變,一年n小變。所以大家無需擔心Android的前景問題。

五、
    目前Android的盈利模式在哪裏?如何做好應用軟件——既不是流氓軟件,又可以較好盈利的模式存在麼?有沒有具體的事例?
   關於Android盈利模式的問題,我已經在上一個提問中進行回答,你可以看一下。我本人認為,流氓軟件可能是最初的一種無奈之舉,是急功近利的體現。要想做好、做大甚至是做強,一定要原理“流氓”二字。雖然說當前的軟件產業競爭激烈,但是畢竟Android在國內僅僅算是剛剛起步。對於技術已經上手的朋友們來說,搶占市場製高點是比較重要的,機會也比較多。相信你能夠在我上個問題提到的4種模式中會選到一種適合自己的。
六、
目前Android的盈利模式在哪裏?
   其實Android經過最近幾年的發展,不難發現它的盈利模式。就目前來看,國內的盈利模式主要集中在如下四個方麵:
(1)應用收費類
這一類主要體現在日益火爆的手機遊戲中,收費模式和PC機版本的網絡遊戲類似。
(2)電子商務類
和傳統的B2C等購物網站類似,方便了消費者的購物。很多電商站點也都紛紛推出了手機版的購物平台,並且取得了不錯的效果。但是就目前技術發展來看,商家和銀行需要應付移動網絡安全性的問題。
(3)軟件應用類
即傳統的買賣開發的應用軟件,當前的主流模式是借助於大型平台進行交易,例如手機助手。單兵作戰的能力還不甚理想,除非自己的作品很有特色。
(4)廣告類
這一類和傳統的PC版站點類似,靠點擊廣告來賺取廣告費。雖然理論上來說,這是比較有前途的。但是同時,這種模式的轉化率(從PV轉化過來的廣告點擊)也是比較低的。就目前市場前景來看,移動版的廣告不及網頁版廣告點擊率的1/5,在其中還包括很多因為手機屏幕小造成的誤點。這一類盈利模式要求自己的忠實用戶比較多,比較具有代表性的是幾個大型門戶網站,例如網易、搜狐、優酷等。
七、
  專家您好,我是一名大學生。目前我想做android手機的桌麵搜索引擎,但是不知道怎麼下手,我有基礎的android基礎,請問我還需要補充什麼知識?有什麼書籍可以推薦的麼?我要怎麼入手去做呢?好迷茫啊
   你好,桌麵引擎的需要的知識點比較多,除了常見的I/O和SQLite外,還需要掌握在Java和底層之間的串聯知識,例如JNI和應用程序接口,並且為了提高搜索效率,需要用C語言編寫引擎核心。但是對於隻有android基礎的你來說,有難度。
所以在此建議你先借助於第三方開源軟件來實現,例如Lucene。
如果想獨立開發,則需要加強Java語言的學習,例如I/O、JNI,還要掌握C語言和android的底層知識,相關底層知識,可以借鑒電子社剛出版的《Android底層開發技術實戰詳解:內核、移植和驅動
》一書。按照先Java後底層的順序,相信你會成功的。

八、
   我們單位有在與某公司合作,開發在安卓移動平台上的一個訂貨係統,在係統開發前期的需求提供上我曾提過一個問題,如何確保所編寫程序的數據應用安全,因為我們的客戶需要用用戶名和密碼登陸係統,但是用戶名密碼的數據在登陸係統的時候是明文的,我們要求開發公司增加類似MD5之類的簡單加密方法,他們都說在安卓平台很難實現,現在導致我們係統的用戶名和密碼在數據庫裏麵全部是明文的。我想問問就是安卓平台開發個軟件做數據加密的功能真的很麻煩麼?那現在安卓移動平台有那麼多程序,難道都是明文傳輸的?還有現在安卓平台也好OS平台也好,反正移動平台的業務越來越廣了,在確保數據應用安全這一塊有什麼好辦法麼?
   不用明文傳輸,具體加密技術其實有多種方案,其中最簡單是從Java的網絡協議入手。在Java中傳輸網絡數據時是可以加密的,所以同理在android中也可以使用。另外,加密算法有多種,在移動設備中建議使用倒序編碼、鍵盤編碼、反字母表編碼、摩爾編碼等。MD5加密算法也很容易實現,最科學的做法建議使用數據存儲方式,例如將加密數據保存在SQLite中。
九、
   還有個個人的問題,可以不回答。我使用是魅族MX,他的flyme係統也是安卓4.0的,但是用該手機瀏覽器登錄一些flash網站時無法輸入用戶名和密碼之類的(不是用客戶端登陸,是網頁登陸)聽人說是安卓和flash不兼容,不知道是不是這回事。
   是的,可能性非常大,以後Falsh在智能手機係統中的不兼容性將繼續存在,未來的方向是HTML 5。
十、
    老師您好,我想谘詢個問題,為什麼同樣一款應用或軟件,在ios係統的設備上對硬件要求比android要來的低,很多性能比itouch要高的手機運行同類軟件會卡,是否android係統下開發的軟件對資源的消耗相對比較高。
    原因有很多,其中最主要的是目前ios的優化工作做得比android好,畢竟android係統要供多家、水平層次不齊的硬件使用,而ios係統是專為蘋果自己服務的。
十一、
     老師您好!我是一名大學生,目前是學習計算機網絡技術的專業,我在學C++的課程。對於安卓係統手機應用上的程序那塊我不是很明白。也沒有這種實際的平台來操作。感覺學習的專業知識根本沒用在實際生活中去。好想去學習,請問你們這邊有沒提供給一個學習平台?
      你好,你畢竟是在校學生,接觸編程的時間有限。其實對於C++來說,這是一門高深的開發技術,隻要精通了C++,其他諸如Java和C#便小巫見大巫,會發現有很多類似的地方。這樣在以後學習Java或C#時,會有事半功倍的效果。建議你現在還是從基礎做起,學好C和C++。至於Android,等學好C和C++再做決定。
十二、
    老師您好!我是從java新入門了解android的。android內部類和java的內部類是不是有很大區別?我寫了一個工具類用javamain方法調用沒問題,在安卓中調用就提示找不到內部類了。內部類是在工具類中,工具類實例化內部類的時候拋出異常
     你好,大多數Java內部類可以在Android中直接使用,但是需要注意一個前提,一定要創建Android SDK環境,並且最好用Eclipse工具創建Android工程。當你掌握了Java的基本知識後,即使發現有的有差別,但是當你用Eclipse調試的時候,也可以根據錯誤提示修改過來。
十三、
Android的前景如何,未來的ios,wp8,android 競爭這麼激烈,andorid的優勢又在哪裏,求解?
    i從目前情況發展來看,ios和android各具優勢,而wp8不足以對兩者構成威脅。跟ios、wp8相比,android最大的優勢是開源。開源意味著免費,所以吸引了眾多手機廠商的青睞。一時之間,無論巨頭級的三星,還是國內的山寨廠商,共同推出了數目巨大的產品,這樣android就無可爭議的獲取了占有量的優勢。穀歌當前的目的很明確,先拉住用戶,占據數量優勢,然後想法留住他們。
但是究竟怎麼樣留住他們呢?我覺得穀歌應該向ios學習,要努力提高用戶的體驗!將來的智能手機用戶對移動設備的要求會越來越高,不僅僅再是作為一個通話工具來使用。這個時候,用戶體驗就顯得尤為重要,例如反應敏捷、界麵美化、強大的娛樂和商務實用性等。在android早先的幾個版本中,升級過於頻繁,而缺乏真正震撼力的升級,仿佛有倉促之感。隨著近2年的發展,穀歌已經越來越重視與細節、優化和用戶體驗,相信在新的版本中,android會做得更好。
十四、
     老師,你們好,我現在在學Android的開發,你能以你的經驗給我提一些建議嗎?學習就是看著視頻,然後敲代碼,您覺得合適嗎?期待您的建議。
      其實學習任何開發技術的方法都是類似的,那就是多寫代碼,多練習。隻有從實戰練習中才能知道自己的不足,並且每一段代碼的調試成功能夠帶來莫名的信心和成就感。另外,對於Android開發來說,需要比較係統的學習Java、SDK等方麵的知識,隻有視頻是不足的,建議多閱讀相關書籍,多去知名的技術論壇逛逛,這樣能學到更多有用的知識,祝學習成功!
十五、
     1、我是一個Android的初學者,對於一個係統的底層操作,從底層構造服務到最上層的應用調用實現APP,具體的機製和流程是如何的呢?
2、我想對供應商提供的OS進行服務的裁剪,將會涉及到哪些方麵的問題?
    具體機製非常簡單,就是一個自上而下“尋根”的過程,或者說是自下而上“分支造葉”的過程。
(1)底層是內核係統,核心是驅動程序。
(2)中間層是接口,提供了開發應用所需要的各個接口。
(3)上層是應用程序框架,這是為應用程序層的開發者提供APIs,例如包括了很多有用的控件。
對供應商提供的OS進行服務的裁剪時,最主要的問題是因為硬件的差異造成的兼容,一個細節差異可能會帶來移植的麻煩。另外還需要細心,不要忘記仔細做好“善後”工作。
十六、
    如何用Android係統控製外圍設備,不知如何設計?
     無論是那種外部設備,控製原理都是一樣的,都是通過驅動程序這個中間媒介實現的。驅動調用底層核心,然後再通過調用接口的方式編寫應用程序,即可實現對外圍設備的控製。這和PC機控製外圍設備的原理也是一樣的。有關這方麵的具體原理和具體實現實例,建議參考電子工業出版社的《Android底層開發技術實戰詳解:內核、移植和驅動》一書。
十七、
    我是一名java程序員 目前主要從事web開發看到現在很多公司要求熟悉android優先,所以最近開始看android,但不知道有什麼好的方法去學習,不知道老師有什麼建議,還有android貌似有幾個方向,像我這種應該注重哪個方向的開發
     我不知道你用什麼技術進行Web開發,所以不太好決定。Android的範圍還算“窄”那麼點,主要分為:應用方麵、底層驅動和移植方麵,其中應用又可以細分為遊戲、網絡等。底層方麵需要C、C++、和Linux方麵的知識,而應用方麵目前主要用Java。如果你以前從事的是Java Web開發,則android應用可能會上手較快。
其實Web和android也有交集,為移動設備開發網頁是將來的一大熱點。所以你可以重點學習android網絡方麵的知識,隻要你精通了在android上開發網頁的技術,你肯定會在職場中綻放光芒。有關android網絡開發技術,建議參考電子工業出版社的《Android網絡開發技術實戰詳解》一書。
十八、
    手裏有一個解析Json的項目(android)需要解析Url的json。我通過創建HttpGet對象,用HttpResponse發送GET請求,可是總不能成功返回,都是拋出異常的。在Java下麵用URL來創建HttpURLConnection連接獲得數據流存到json文件中確可以,這個怎麼解決?
     在這個過程需要  response.getEntity() EntityUtils進行字符串的處理,用JSON 對象進行數據的封裝,否則會發生異常。注意到這點後,整個過程和在Java下的類似,隻需四個步驟:
(1)通過httpclient向網絡端獲取到數據,返回JSON object格式的數據。
(2)通過JSON object的get JSONArray()得到數據。
(3)通過對array的遍曆 根據元素名稱取出各組相應的數據。
(4)得到數據,並且進行填充。

十九、
     Android項目中添加PhoneGap控件,對係統的消耗大嗎?是完全替換了還是套殼封裝?
      係統消耗不大,最初的PhoneGap是原生方式體現的,我所試過的是在Android項目中添加的是封裝版的。不過建議在項目中不使用PhoneGap,畢竟JavaScript調用的方式的功能有限。
二十、
     專家您好,我正在學Android,想做一個android上的socket多人聊天室,可是socket線程把ui阻塞了,在網上查了一下資料,明白了要用android上的多線程機製,可是不知道用handler、AsyncTask、還是service好?謝謝!
     如果要求不高,從難易程度考慮,建議使用AsyncTask,因為畢竟AsyncTask是一個獨立的工具類,它提供了多個有用的方法供我們選擇。如果從追求效率和穩定性因素考慮,建議用hanlder+message,這一機製號稱是最本質的多線程機製,這樣就如果提供了一個專門的處理器一樣來處理我們的多任務。
二十一、
      老師您好,我想谘詢一下,android經過幾年的發展,現在的發展情況跟iphone、wp8相比,是否處於移動開發的前列(市場份額,用戶使用普及程度),尤其是與iphone相比。另外,作為個人軟件開發愛好者,您認為個人開發者在android移動開發中是否有創業的可能性?難度在哪裏?謝謝指點。
       無論是從市場占有量、開發人員入門的門檻還是開發成本,android都是占據了絕對優勢。至於你所說的創業問題,我的觀點是越早越好。既然你已經想到了創業,我想你應該已經具備了創業所需的軟硬件條件。畢竟android是近幾年發展起來的新技術,高手不如別的程序員那麼多,所以說“創業要趁早”。
但是創業並不是簡單的“心血來潮”,當前製約android創業盈利的“點”還不如iphone正規,難以形成一個統一的、標準化的而又信息量巨大的市場。要想發展業務,隻能憑借僅有的平台來拓展,或者是“赤裸裸”的個人推廣。個人感覺穀歌提供的創業平台不如iphone,例如iTunes這一平台的作用是無法想象的。
二十二、
      兩位老師好,我是一名android遊戲開發者,現在是做單機遊戲的。 正準備步入聯網遊戲開發,想請問下:聯網遊戲的人物位置在不用機器裏是怎麼同步的?我的意思是例如現在有A、B兩個android手機同時玩一個聯網遊戲,A手機的人物位置改變的,用什麼方式告訴B手機讓B手機的人物也改變位置?謝謝!
       有兩種可選方案:
(1)利用socket技術,頻繁發送A的坐標信息給B。在具體實現時,可以通過觸摸按鈕的方式實現,每觸摸一次,計算一次位置坐標,然後將坐標發送出去。這種方式是大多數網絡遊戲中的做法,優點是適用於幾乎所有的網絡遊戲。但是缺點很明顯,浪費數據,這一缺點對手機來說非常致命。
(2)利用android的廣播機製進行通知。不要將廣播想象的太複雜,最簡單的是隻廣播起始位置和結束位置,至於複雜程度可以自行設置。
這兩種隻是簡單的方案,如果要想讓遊戲更加精密,還需要在構建框架時設置人物的移動速率、移動時間差等,這些都需要和遊戲服務器配合實現。
有時間可以參閱電子工業出版社剛出版的《Android遊戲開發技術實戰詳解 》和《Android網絡開發技術實戰詳解》兩本書,裏麵介紹了相關內容。
二十三、
      老師,您好,我現在在做一些android的自動化測試方麵的工作。不知道在這方麵有什麼發展?主要就是用了三個android提供的自動化工具,Robotium,Monkey和MonkeyRunner,平時也就用這幾個工具寫一些自動化的腳步,感覺用起來比較簡單。雖然以後還是想往開發發展,但是現在在做著測試的工作,也希望能把測試做好。不知道在android自動化測試方麵怎麼學習,該學習點什麼(我做了兩個多月,平時的任務就是用Robotium和MonkeyRunner寫點腳本,感覺沒啥進步)?自動化測試的發展前景如何?麻煩老師能給出一些指點。
     其實任何一個工作,隻要做好了,前途都是光明的。自動化測試是將來軟件行業的一個熱點之一,畢竟開發出來這麼程序,究竟能不能好的運行,能不能更加具有效率,有時憑我們的目前的經驗來說很難判斷,特別對於android這門近幾年剛發展的技術來說更是如此。android自動化測試工作看似簡單,其實做好很難。當前的測試工具也不盡完善,工具能夠測出的僅僅是大多數,所以給人造成了“android自動化測試”簡單的誤區。相信隨著穀歌對android的發展,以後會有更多的好的測試工具推出,並且也會誕生一些第三方工具。
既然測試工作的前景光明,所以做好是很重要的。平時可以了解一些內存管理和android虛擬機等方麵的知識,相信會對你的工作有鎖幫助。如果還是希望挑戰android開發工作,現在學習也不晚。並且你具備測試方麵的經驗,相信你開發出的android程序會更加精彩。
二十四、
     老師,你好!我現在掌握和了解的技術主要是j2ee方向的軟件開發,最近了解了一點點安卓app的開發流程,發現有相似也有些不大一樣的東西,目前找工作很多都有關於安卓方麵的開發的,像我這種情況,找到相關的工作的難度多大?轉方向突破點又是哪一塊呢?謝謝老師的解答!!!
      隻了解安卓開發流程是不夠的,雖然安卓應用程序是Java開發的,但是畢竟安卓比Java多了一些控件和接口。因為你已經具備了j2ee開發基礎,所以現在學習安卓會事半功倍。很明顯,當前能夠最快提高你的方向是安卓應用領域。建議你先從SDK、控件、接口入手,多閱讀一些安卓的典型實例。相信憑著你的基礎,能夠很快上手。
二十五、
      老師,請教一個問題,”android網絡開發”和“phoneGap+web開發”兩者的區別在哪裏?兩者都可以開發android的web應用程序的話,他們的優勢是什麼,劣勢又是什麼?您覺得哪一個技術在將來會更加受歡迎?個人覺得web技術會越來越強大,它可以實現跨平台,通過phonegap+jquery mobile等也可以實現android桌麵遊戲的開發,而android無法實現跨平台。希望老師百忙之中能夠抽空回答一下。
      PhoneGap:是一款HTML5平台,通過它,開發商可以使用HTML、CSS及JavaScript來開發本地移動應用程序。你說的“phoneGap+web開發”是指利用phoneGap平台開發Web網頁。
而“android網絡開發”的範圍則比較廣,包含了和網絡有關的各種android應用,除了Web方麵外,還包括網絡通信、藍牙、無線開發、流量等。
二十六、
      老師你好,我及周邊幾個同事都想轉入Android的開發,做為初學者我們該從哪裏入手,有沒有什麼比較合適的書籍推薦,另外Android的開展前景如何,如何運作Android的運營模式。如何應對Android版本升級的接口變化。Android、iOS、Windows Phone這個係統的發展形式作個預測。
      我不清楚你們目前從事什麼開發,如果是Java方麵,向Android應用領域轉行會比較容易。如果有Linux、C等經驗,可以考慮向Android移植、底層方麵轉型。

Android的前景請不要懷疑,優勢已經在前麵的問題中回答了。在將來的一段時期內,智能手機係統市場還是iOS和Android的天下。Windows Phone還需要繼續提高自己的修為,因為微軟還沒有實現一個比較統一的集發布、開發和測試於一體的平台,所以無論是軟件支持,還是開發者支持,近期內難以達到理想的效果。當然隻要微軟解決了這一問題,憑借其目前在PC機的統治力,後來居上也是有可能的。
近期電子工業出版社剛出版的《Android開發實例大全 》《Android多媒體開發技術實戰詳解》《 Android網絡開發技術實戰詳解 》《 Android遊戲開發技術實戰詳解》《Android底層開發技術實戰詳解:內核、移植和驅動 》比較具有代表性,相信你們會從中選出適合自己的書籍。

二十七、
    老師您好,
有機會向您請教真是榮幸,我知道有很多庫可以實現即時通信,但是對於原理方麵了解不多,也不曾深入了解過,想趁這個機會問一下。兩個局域網通過互聯網相互通信,靠的是tcp/ip但是,
1、兩台終端是怎樣通過socket進行綁定的呢?
2、我知道局域網和互聯網通信可能用到nat,難道這些協議也是通過nat找端口?是怎麼實現的?在有就是服務器在這個時候是起的什麼樣的作用呢?
3、一台終端能夠即時的獲得消息,是從另一台終端獲得的消息嗎?還是通過服務器轉發?這台終端是否一直占用著socket一個端口?難道是一直在輪詢?
因為對這一塊很感興趣,請不吝賜教
   第一個問題就不回答了,因為十分簡單,隻是一個使用socket實現連接、交互和關閉這三個階段的過程。
第二個問題:NAT隻是一個中間媒介,起一個翻譯的作用,翻譯的對象是外部因特網網的地址,因為在使用時已經有了外部地址,所以不需要查找端口操作。如果為了追求係統的可擴展性和穩定性,則需要添加找端口機製,但是此時最好對應添加服務器代理,因為這樣做的效率會更高。由此可見,這個時候服務器的作用就是處理翻譯尋址工作,做一些存儲工作。
第三個問題:當然可以從另一台終端獲得的消息,但是這樣會占用更多資源,所以最合理做法是服務器轉發。在一個端口隻能用一種方式,例如隻能用輪詢。一隻占用是不好的做法,現在硬件設備都支持輪詢,因為這樣會更加節約資源,甚至andorid和ios等移動設備都支持輪詢。當然也會有人反駁說:移動設備的資源有限,所以才選擇用輪詢。如果硬要這麼反駁,那麼在追求效率和利用率的今天,這些工作就沒有意義了!
二十八、
     老師你好,我是一個工作快一年的android開發者.由於我們公司是做自己的產品,項目壓力比較小,上班的時候有時候感覺無所事事.所以我想多學一點其他方麵的東西.我在網上看到好多android開發者都會同時學習ios開發,請問同時使用兩種語言會不會比較麻煩?又或者是向NDK方向發展呢?
     是很麻煩,但是幸運的是objective-c和C語言以及Java有很多相似之處,所以能夠提高學習ios的效率。大家都是有經驗的程序員了,為了自己的未來,相信多學一門新技術是很值得的。
其實NDK方向的難度和ios可以劃等號,既然需要付出的時間和精力差不多,為什麼不學習一門新的技術呢?
二十九、
      老師您好!我的導師建議我用android開發一款適合中小學教學的教育遊戲軟件,作為我的畢業論文,但之前沒有接觸過android,應該從哪些方麵來著手學習呢?謝謝!
     老師的任務是讓你開發一個android遊戲項目,也就是一個android應用程序。因為你是初學者,所以建議你從基礎做起,下麵是基本的學習流程:
(1)搭建android開發環境
(2)複習Java語言的語法知識,了解Java遊戲的知識
(3)android SDK、控件、接口,著重學習和繪圖、圖形相關的接口類
對於有Java基礎的學習者來說,學習android應用開發十分簡單。並且建議準備幾本android教科書,例如電子工業出版社的新書《Android遊戲開發技術實戰詳解》正好適合現在的你。
三十、
     我之前主要是做WEB前端開發,對J2EE後端的東西自己也了解和學習過一些。現在在接觸android這一塊,並且想一直走下去。我目前比較迷茫的要怎麼樣學才能比較高效的掌握好android並且能夠達到找到一份好工作的程度,因為我時間不是很多,年齡也不小了今年29歲。嗬嗬,有點急功近利的感覺。 目前我的學習路線是通過學習視頻來入門,書瀏覽過但是沒有仔細揣摩,因為怕費時間。另外是打算研究SDK的sample代碼,最後能夠自己寫幾個項目出來去麵試,但是又怕自己代碼寫的很難看很弱智,所以又想學學開源項目的代碼,但是又怕遇到完全不知道人家這樣寫的意圖的時候就不知道怎麼辦了。
不知道這樣是否可行?請指點。謝謝~

      首先要明確一個觀點:編程是看得見摸得著的工作,編程也是不能急功近利的職業。相對於其他開發工作來說,android是一門相對比較值得投入的技術。視頻學習雖然比較迅速,但是這是對初學者來說的。還是建議你購買幾本相關書籍,進行一次係統的學習。這看似比較浪費時間,其實這是一勞永逸的做法。
SDK的sample比較具有代表性,但是也存在一個問題:簡單和複雜並存。建議你多參閱市麵中android書籍中的實例,一般都講解的比較細致,有利於你看懂並掌握。例如電子社剛出版的《Android開發實例大全》一書,不但有你目前學習的小型項目,而且也有大型的項目,這些項目對你的學習很有好處。

最後更新:2017-04-02 22:15:46

  上一篇:go 近期小記
  下一篇:go hdu 1068 Girls and Boys