android注意
① 學習android應該注意什麼(新手)
在網路中搜「ppy2790博客」,「Android學習之路」,「Android開發學習路線圖」,大量Android學習文章,項目,游戲開發視頻。
一、Android開發的分類:
1、Android客戶端應用程序
如新浪微博、網銀客戶端、凡客、淘寶客戶端,快盤客戶端。Android在這里的應用還是界面層的東西為主。核心還在WEB。客戶端界面很重要,用戶體驗度很重要。從應用需求上來講,幾乎大一點的網站,都需要有手機客戶端程序。
2、Android通用類程序
如基於LBS(基於位置的服務)的應用(這類一般會嵌入到客戶端應用程序中),流媒體播放應用。由於移動設備的方便便捷、3G、4G網路的發展,這類應用有不錯的前景。
3、Android游戲開發
需要掌握的游戲引擎LGame,游戲框架等。手機上的游戲會是一大塊內容,有前途。
4、Android底層開發
需要掌握C、Linux等較底層的東西,發展方向應該是驅動、協議開發,嵌入式開發。
開始學習了解一般從界面、控制項開始,這也是大部分人認為簡單、比較快上手的原因。學習一段時間後,自己可以定一個方向發展。
二、Android學習需要哪些知識點
1、java基礎知識
J2SE:Java基礎類(lang包,IO包,util包(集合框架),面向對象,多線程,網路編程)
2、J2EE知識
如果你想從事的Android客戶端應用程序的開發,這部分知識是必備的。顯然Android客戶端只是做的數據的請求、展現,所需的數據在伺服器端。
技能點:Tomcat(Weblogic),XML解析,JSON解析,JSP/Servlet。了解SSH。
3、Linux、C語言知識
可以作為你後續發展需要了解的。
在論壇上、QQ上看到不少童鞋Java基礎還比較欠缺,就開始搞Android了,當然就問題多多。學習熱情可嘉,但需要打一個好的基礎,有一個好的學習路線。
三、Android學習比較好的資料
1、應該說現在市面上的書,入門的還是不少,但一般現在只講了簡單控制項的單個用法。
《Android開發範例大全》,《Android應用開發詳解》可以參考。想了解游戲的話,可以參考《Android2.0游戲開發實戰寶典》。
2、Android學習視頻,也基本上停留在講簡單入門,單個控制項用法為主,這方面遠不及Java,J2EE,SSH的視頻那麼豐富。應該講,你看完了這些,離開發還有很大一段距離。而且,這些視頻在講課方法上不如一些Java的好。現在的視頻資料太豐富,從哈佛、斯坦福的課程,到IPHONE開發課程,都有。但全部跟著視頻完成所有的學習,有很長一段跟要走。
3、Android的論壇比較多,論壇的缺點就是什麼東西得自己一個個查找、去等。自學是一個艱苦而漫長的過程。對你的鍛煉和提升也最大。自學有一個缺點,就是容易迷失方向,一個知識點你永遠不知道要掌握多深,相關的應用是什麼。自學就好比像你一個人在走一條目標很遠,前面叉路很多的暗道一樣。
4、培訓機構學習。如果你時間上允許不失為一種好的選擇,可以快速入門。互聯網產品(時代)有一個重要特點,就是拿資金換時間。如果能快速入門,到這個行業去發展,就比自己慢慢學習要好得多。畢竟現在Android開發太熱了。對開發人員的要求也會逐漸提高。(如既要求能做Android開發,又做IPHONE移植開發)。
對培訓機構的選擇就比較重要了。
② android開發需要注意什麼
1、不要排斥新技術和新工具。
Android Studio 1.0 之後的版本,基本已經穩定到可以支持正常的工作開發的程度了。單純就書寫效率而言,Android Studio 帶來的好處絕對大於它和Gradle的學習成本。JetBrains的IDE,用過都說好。
還有就是適當的提升targetSdkVersion到新版本。
2、代碼設計方面的問題,大部分都能在Android系統源碼里找到解決方案。
當你想設計一個新模塊,或者實現一個新ui組件的時候,應該採用哪些設計模式、應該以哪種形式給外界提供介面之類的問題,大部分都可以參考Android系統的源碼,找到實現方式。Google為安卓程序員提供了一座現成的寶庫。
3、理解Android和Java內存管理方式,至少要理解垃圾回收和Java的引用。
就好比學OC就要先理解黃金法則一樣,而java的內存管理,其實比OC要好理解多了。
這可能會幫助你大大減少程序非同步操作產生的空指針崩潰。也會幫助你理解為什麼濫用單例模式會導致內存的臃腫。還會幫助你養成不用「+」去連接超大字元串的好習慣。
4、ContentProvider並不是只有在跨進程共享數據的才有用,把資料庫表映射到一個獨立的uri是Google鼓勵的實現方式。
從設計上講,用uri(統一資源標識符)去描述數據,肯定比sql語句要理想。
從效果上講,用CursorLoader讀取數據是讓iOS程序員都羨慕不已的事情,作為android程序員,何苦不用呢。
5、理解Activity任務棧。
非Activity的Context對象如果直接啟動Activity會報錯,這只是一個表面現象,真正起作用的其實是Activity任務棧機制。
理解Activity任務棧機制以及Activity的各種啟動方式,會幫助解決大部分頁面關系錯亂問題,以及應用互相掉起、任務欄進入應用、後台彈窗引起的各種問題。
6、對於一些奇葩的第三方ROM,調用其非主流api的時候,可以使用反射。
在適配一些第三方ROM的的時候,調用一些在開發環境中沒有,但在運行環境中有的方法時,可以使用反射。比方說,華為雙卡手機可能會提供獲取第二塊SIM卡信息的api,如果直接調用,在開發環境可能無法通過正常編譯,用反射就沒問題。這屬於不得已而用反射的一種情況。
7、SQLite的鎖,是資料庫級別的鎖,也就是說同一個資料庫的寫操作無法並發執行。
所以,在資料庫設計的時候,如果表太多,盡量將沒有關聯的表拆到多個資料庫文件中。
8、Bitmap的內存佔用問題。
這是一個困擾2.X時代android程序員的問題。
2.X時代Bitmap對象雖然存儲在堆內存中,但是用了一個byte數組存儲其像素信息。通過計數器來記錄該像素信息被引用的個數。有人認為這個byte數組在native堆中,但事實上它也在堆中。
只有在使用者調用recycle()後,Bitmap對象才會釋放像素信息,才會在失去引用後,被垃圾回收機制銷毀。再加上DVM的heap size有嚴格的閥值,所以在使用大量圖片資源的時候,及其容易發生OOM。
解決辦法一般都是,用一個哈希表存儲Bitmap對象的軟引用,作為內存緩存,並在適當時機掉用其recycle()。
3.0以上版本Bitmap對象可以通過垃圾回收機制完全銷毀,理論上不用再調用recycle()。
③ Android開發中需要注意哪些坑
安卓開發注意點:
不要排斥新技術和新工具。
代碼設計方面的問題,大部分都能在Android系統源碼里找到解決方案。
理解Android和Java內存管理方式,至少要理解垃圾回收和Java的引用。
ContentProvider並不是只有在跨進程共享數據的才有用,把資料庫表映射到一個獨立的uri是Google鼓勵的實現方式。
理解Activity任務棧,對於一些奇葩的第三方ROM,調用其非主流api的時候,可以使用反射。
SQLite的鎖,是資料庫級別的鎖,也就是說同一個資料庫的寫操作無法並發執行。
一個優秀的android應用開發者應該善於運用常識、完善的演算法和標准設計模式。要有資源意識,打開了就要記得關閉,盡量做到晚獲取,早釋放。
④ Android開發需要注意的細節有哪些
注意格式規范..語法規范..細心..認真...
1. 為Activity聲明系統配置變更事件
系統配置變更事件是指轉屏,區域語言發生變化,屏幕尺寸發生變化等等,如果Activity沒有聲明處理這些事件,發生事件時,系統會把Activity殺掉然後重啟,並嘗試恢復狀態,Activity有機會通過onSaveInstanceState()保存一些基本數據到Bundle中,然後此Bundle會在Activity的onCreate()中傳遞過去。雖然這貌似正常,但是這會引發問題,因為很多其他的東西比如Dialog等是要依賴於具體Activity實例的。所以這種系統默認行為通常都不是我們想要的。
為了避免這些系統默認行為,就需要為Activity聲明這些配置,如下二個是每個Activity必須聲明的:
<activity android:configChanges="orientation|keyboardHidden">
幾乎所有的Activity都要聲明如上,為什麼Android不把它們變成Default的呢?
2. 盡量使用Android的API
這好像是廢話,在Android上面開發不用Android API用什麼?因為Android幾乎支持Java SE所有的API,所以有很多地方Android API與Java SE的API會有重復的地方,比如說對於文件的操作最好使用Android裡面Context封裝的API,而不要直接使用File對象:
Context.openFileOutput(String); // no File file = new File(String)
原因就是API裡面會考慮到Android平台本身的特性;再如,少用Thread,而多使用AsyncTask等。
3. 要考慮到Activity和進程被殺掉的情況
如了通常情況退出Activity外,還有Activity因其他原因被殺的情況,比如系統內存過低,系統配置變更,有異常等等,要考慮和測試這種情況,特別是Activity處理重要的數據時,做好的數據的保存。
4. 小心多語言
有些語言真的很啰嗦,中文或英文很簡短就能表達的事情到了其他語言就變的死長死長的,所以如果是wrap_content就可能把其他控制擠出可視范圍; 如果是指定長度就可能顯示不全。也要注意特殊語言比如那些從右向左讀的語言。
5. 不要用四大組件去實現介面
一是組件的對象都比較大,實現介面比較浪費,而且讓代碼更不易讀和理解; 另外更重要的是導致多方引用,可能會引發內存泄露。
6. 用getApplication()來取Context當參數
對於需要使用Context對象作為參數的函數,要使用getApplication()獲取Context對象當參數,而不要使用this,除非你需要特定的組件實例!getApplication()返回的Context是屬於Application的,它會在整個應用的生命周期內存在,遠大於某個組件的生命周期,所以即使某個引用長期持有Context對象也不會引發內存泄露。
7. 主線程只做UI控制和Frameworks回調相關的事。附屬線程只做費時的後台操作。交互只通過Handler。這樣就可以避免大量的線程問題。
8. Frameworks的回調不要做太多事情僅做必要的初始化,其他不是很重要的事情可以放到其他線程中去做,或者用Handler Schele到稍後再做。
9. 要考慮多解析度
至少為hdpi, mdpi, ldpi准備圖片和布局。元素的單位也盡可能的使用dip而不要用px。
10. 利用Android手機的硬鍵
幾乎所有的Android手機都有BACK和MENU,它們的作用是返回和彈出菜單,所以就不要再在UI中設計返回按扭和菜單按扭。很多優秀的應用如隨手記和微信都有返回鍵,他們之所以有是因為他們都是從iOS上移植過來的,為了保存體驗的一致,所以也有了返回和菜單。但這不夠Android化,一個純正的Android是沒有必須重復硬鍵的功能的。
⑤ Android平板開發需要注意的幾點
隨著移動平台的發展和其應用的不斷改善,質量成為決定成敗的關鍵。用戶要求他們選擇安裝的應用響應快、性能好,如果某個應用不能提供卓越的功能和穩定的用戶體驗,那這樣的應用註定會被很快卸載。
盡管現在android智能手機和平板電腦的運行速率越來越快,但開發者仍需牢記,應用的運行環境仍受到電池和處理器等諸多資源的限制。以下是給android應用開發者10個建議,以便能在當前和以後的所有android設備都能運行出最佳效果。
1.首先要有良好的編碼習慣
一個優秀的android應用開發者應該善於運用常識、完善的演算法和標准設計模式。要有資源意識,打開了就要記得關閉,盡量做到晚獲取,早釋放。這些由來已久的編碼准則同樣適用Android應用開發,尤其是使用基礎設備服務時。
2.讓阻塞操作遠離主UI線程
通過使用AsyncTask、線程、IntentService和自定義後台服務,保證應用的靈活性。使用載入工具簡化游標等長時間載入數據的狀態管理。當有其他程序運行時,不能讓應用滯後或中止。
如果一個操作需要消耗較多時間和資源時,取消該操作,換成非同步處理,這樣應用就能保持響應,用戶可以繼續各種操作。該方法適用磁碟讀寫、訪問內容提供方、資料庫和互聯網,以及解析和其他需要花費較長時間的任務。
3.使用最新的android SDK版本和API
使用android平台的最新產品,保證應用緊跟android的更新步伐。隨著android平台的不斷發展,部分功能可能被棄用或被更好的功能取代,核心API接收了bug修復和性能改進,新API有助於android應用開發者編寫出更穩定的應用。要明白最佳的做法總是隨著時間的推移而變,聰明的android應用開發者應該總是站在整個平台的最前沿。
4.考慮使用StrictMode
從android 2.3開始提供了一個新的類StrictMode,該類可以用於捕捉發生在應用程序主線程中耗時的磁碟、網路訪問或函數調用,可以幫助開發者改進程序,使主線程處理UI和動畫在磁碟讀寫和網路操作時變得更平滑,避免主線程被阻塞。
5.發布前禁用或盡量減少調試
如果android應用開發周期較長,很可能在應用中內置了一些日誌或調試代碼,在發布前確保這些功能已經最小化或完全禁用。
6.確保UI布局簡單優雅
簡單的屏幕不僅方便閱讀,還能加快載入速度。與其在一個單一屏幕上堆砌太多不必要的功能,不如花時間去開發優雅的用戶界面。簡單優雅的UI不僅能提高應用性能,還能提高用戶使用該應用時的效率。
7.根據目標設備調整應用資源
為盡可能高效地被載入,需要根據具體設備的配置調整相應資源,尤其是圖片資源。為使應用包文件合理適用不同設備,首先可只添加運行該應用需要的核心資源,然後再根據具體設備下載相關內容。
8.使用Hierachy Viewer可視化調試工具
Hierachy Viewer能很方便地在開發者設計,調試和調整界面時,快速定位問題,解決問題,提高開發效率。
9.使用layoutopt進行布局優化
Layoutopt是一款簡單的命令行工具,可幫助找到不必要的控制項嵌套以及縮減布局資源,從而使應用變得可能「苗條」。控制項越少、布局層次越淺,性能就越好。
10.使用Traceview及其他Android工具進行分析
Android SDK隨帶了很多用於應用分析的工具,其中最受歡迎的是Traceview,這款圖形工具可以幫助調試和找到應用中的性能瓶頸。
⑥ 第一次用安卓機,有什麼設定需要注意的嗎
現在安卓手機的使用體驗和蘋果不相上下,而iOS和安卓系統長期以來也在相互學習,所以蘋果手機用換到安卓平台之後並不會有太多不適應的地方,但是需要注意以下幾點:
1、申請和使用手機賬號iOS系統第一次激活時必須申請或者登錄AppleID才能正常使用手機。雖然安卓手機可以跳過這一步驟,即使不注冊賬號也能使用手機的大部分功能。但是建議大家在第一次使用安卓手機之前,先按照系統提示注冊一個賬號比較妥當。
以小米的MIUI為例,登錄小米賬號之後就可以實現數據雲同步,將相冊、簡訊、便簽、聯系人等重要數據保存在雲端。最重要的是可以開啟「查找我的手機」功能,這樣一來即使手機不慎丟失,也可以通過遠程鎖死手機,並抹除手機中的全部數據。這一點和iOS系統非常相似。
10、虛擬按鍵隨著全面屏時代的到來,很多安卓手機都使用虛擬按鍵,指紋識別則放在了機身背後。這一點和蘋果的實體Home按鍵差別很大。不過虛擬按鍵也有方便的地方,習慣之後就就好了。另外安卓的指紋識別比7以前的iPhone手機靈敏很多,幾乎一碰就能解鎖。
11、安裝應用大多數安卓手機都自帶應用市場,和蘋果AppStore差不多,想要什麼應用在市場中找就行了。但是安卓手機也可以從網站或者其它第三方下載應用,比蘋果手機要方便很多。但同時需要注意的是,非官方應用市場下載的應用有可能會隱藏惡意軟體,所以最好不要從來歷不明的地方下載應用。
12、自動開關機大部分安卓手機都支持自動開關機,也支持關機鬧鍾,這一點要比蘋果手機人性化很多。習慣睡覺時關機的用戶也可以將手機當作鬧鍾使用,非常方便。總結現在蘋果手機和安卓手機各有各的優點,即使是一千塊錢的安卓手機也能獲得比較不錯的體驗。
不過和iOS系統比較簡單不同,安卓系統有很多功能都需要自己去挖掘,可玩性更強一些。如果積累了足夠的經驗,還是嘗試刷機,體驗第三方系統。從極客發燒友的角度來說,安卓要比蘋果更有意思。
⑦ Android 開發中,有哪些坑需要注意
Android開發過程中要注意的點
1、 在Androidlibrary中不能使用switch-case語句訪問資源ID;
2、 不能在Activity沒有完全顯示時顯示PopupWindow和Dialog;
3、 在多進程之間不要用SharedPreferences共享數據,雖然可以(MODE_MULTI_PROCESS),但極不穩定;
4、 有些時候不能使用Application的Context,不然會報錯(比如啟動Activity,顯示Dialog等):
5、 Android的JNI代碼中,有返回類型的函數沒有返回值編譯的時候也不會報錯;
6、 不要在非UI線程中初始化ViewStub,否則會返回null;
7、 不要通過Bundle傳遞大塊的數據,否則會報TransactionTooLargeException異常:
8、 盡量不要使用AnimationDrawable,它在初始化的時候就將所有圖片載入到內存中,特別占內存,並且還不能釋放,釋放之後下次進入再次載入時會報錯;
9、 Eclipse的Android開發環境配置好後不要輕易升級ADT和build tools,不然會浪費很多時間,還有就是一個workspace中的工程不要太多,不然每次啟動都會很慢;
⑧ android 開發需要注意什麼
隨著移動平台的發展和其應用的不斷改善,質量成為決定成敗的關鍵。用戶要求他們選擇安裝的應用響應快、性能好,如果某個應用不能提供卓越的功能和穩定的用戶體驗,那這樣的應用註定會被很快卸載。
盡管現在android智能手機和平板電腦的運行速率越來越快,但開發者仍需牢記,應用的運行環境仍受到電池和處理器等諸多資源的限制。以下是給android應用開發者10個建議,以便能在當前和以後的所有android設備都能運行出最佳效果。
⑨ android開發中需要注意什麼
1.首先要有良好的編碼習慣
一個優秀的android應用開發者應該善於運用常識、完善的演算法和標准設計模式。要有資源意識,打開了就要記得關閉,盡量做到晚獲取,早釋放。這些由來已久的編碼准則同樣適用Android應用開發,尤其是使用基礎設備服務時。
2.讓阻塞操作遠離主UI線程
通過使用AsyncTask、線程、IntentService和自定義後台服務,保證應用的靈活性。使用載入工具簡化游標等長時間載入數據的狀態管理。當有其他程序運行時,不能讓應用滯後或中止。
如果一個操作需要消耗較多時間和資源時,取消該操作,換成非同步處理,這樣應用就能保持響應,用戶可以繼續各種操作。該方法適用磁碟讀寫、訪問內容提供方、資料庫和互聯網,以及解析和其他需要花費較長時間的任務。