国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

在我寫我的第一個Android App時,我希望我能知道的6件事

移動開發 Android
當你寫你的第一個Android app時,這有一個列表你需要記著。這些經驗教訓是我在寫第一個app源碼時,犯下的真實的錯誤。我將會在后面展示這些錯誤。記住這些事情能幫助你寫一個讓你感到有點自豪的app。

我的***個app是糟糕的。實際上,它太糟糕了,所以我把它從商店中移除,我甚至不再因我把它列在我的簡歷之中而煩惱。如果我在寫它之前,知道一些有關Android開發的事,那個app就不會那么糟糕。

當你寫你的***個Android app時,這有一個列表你需要記著。這些經驗教訓是我在寫***個app源碼時,犯下的真實的錯誤。我將會在后面展示這些錯誤。記住這些事情能幫助你寫一個讓你感到有點自豪的app。

當然,如果你作為一個Android開發的學生正在做正確的工作,無論如何,不久后你都有可能恨你寫的app,正如@codestandards所說,如果你一年前碼的代碼并不能讓你感覺到不適,那你有可能沒怎么學習。

如果你是一個有經驗的Java開發者, 第1,2和第5條可能并不能讓你感興趣。另外的第3,4條可能展示你一些很酷的但你可能還不知道的東西。
對Contexts不要有靜態引用

  1. public class MainActivity extends LocationManagingActivity implements ActionBar.OnNavigationListener, 
  2. GooglePlayServicesClient.ConnectionCallbacks, 
  3. GooglePlayServicesClient.OnConnectionFailedListener { 
  4.  
  5. //... 
  6.  
  7. private static MeTrackerStore mMeTrackerStore; 
  8.  
  9. //... 
  10.  
  11. @Override 
  12. protected void onCreate(Bundle savedInstanceState) { 
  13. //... 
  14.  
  15. mMeTrackerStore = new MeTrackerStore(this); 

這可能看起來對任何人來說,都是一個不可能犯的錯誤。但并非這樣,我就犯過。我也看到其他人犯過這樣的錯誤,并且我也看到很多人并不能在***時間指出為什么這是一個錯誤。不要這樣做。它是一個noob move

如果當這個Activity傳遞到它的構造函數里,MeTrackerStore持有這個Activity的引用,那這個Activity將仍然不會被回收(除非這個靜態變量被重新賦值給另一個Activity)。這是因為mMeTrackerStore是靜態的,靜態變量的內存是不會被回收的,直到程序里正在運行的進程停止。如果你發現自己嘗試這么做,那么你的代碼可能有一些嚴重的錯誤。尋找幫助的話,可以看看Google’s Udacity里的課程 “Android Development for Beginners”

注意:技術上講,你可以hold一個對Context的靜態引用,但不會引起內存泄漏,但我不會推薦你這么做。
當心對那些你無法控制它的生命周期的對象進行隱式引用

 

  1. public class DefineGeofenceFragment extends Fragment { 
  2. public class GetLatAndLongAndUpdateMapCameraAsyncTask extends AsyncTask<String, Void, LatLng> { 
  3.  
  4. @Override 
  5. protected LatLng doInBackground(String... params) { 
  6. //... 
  7. try { 
  8. //Here we make the http request for the place search suggestions 
  9. httpResponse = httpClient.execute(httpPost); 
  10. HttpEntity entity = httpResponse.getEntity(); 
  11. inputStream = entity.getContent(); 
  12. //.. 
  13.  
  14.  

這段代碼有很多問題,但我將關注其中的一個。在Java中,非靜態的內部類對包含它的類對象有一個隱式的引用。

在這個例子中,任何GetLatAndLongAndUpdateMapCameraAsyncTask對象都將有個DefineGeofenceFragment對象的引用。匿名類也是如此:它會對包含它的類對象有個隱式的引用。

這個GetLatAndLongAndUpdateMapCameraAsyncTask對象對Fragment對象有個隱式的的引用,一個我們無法控制它生命周期的對象。Android SDK負責適當的創建和銷毀Fragment對象,如果因為GetLatAndLongAndUpdateMapCameraAsyncTask對象正在執行所以不能被回收的話,那它持有對象也無法被回收。

這里有一個很棒的Google IO 視頻解釋為什么這種事會發生
讓Android Studio為你工作

 

  1. public ViewPager getmViewPager() { 
  2. return mViewPager; 

這個片段是我使用”Generate Getter”代碼補全時,Android Studio為我生成的,這個getter方法對這個實例變量保持了’m’前綴。這并不理想。

(另外,你一定想知道為毛實例變量神明的時候要帶個’m’前綴:這個’m’常常被約定作為實例變量的前綴。它代表了’member’。)

不論你是否認為’m’作為你實例變量的前綴是一個好主意,這里有一個經驗:Android Studio可以幫你按照你養成的習慣去編寫代碼。比如說,你可以使用Android Studio中的代碼風格框去讓Android Studio自動的加上’m’到你的實例變量并且自動移除’m’當它生成getters,setters,和構造參數時。

 

Android Studio可以做很多事情,學習快捷鍵和活動模版會是一個好的開始。
方法應該只做一件事

有一個方法我寫超過了1000行。這樣的方法很難讀懂,修改和重用。試著寫僅僅做一件事的方法。典型的,這意味著你應該懷疑那些你寫超過20行的代碼。這里你可以招募Android Studio去幫助你指出有問題的方法:

向那些比你更聰明,更有經驗的人學習

這好像挺起來不重要,但是這是我寫***個app時犯下的錯誤。

當你正在寫程序時,你將會犯錯。其他的人已經犯過這樣的錯誤了。向其他人學習。如果你重復那些可以避免的錯誤,那你就是在浪費時間。

讀Pragmatic Programmer. 然后讀Effective Java.這兩本書會幫助你避免犯一些常見的錯誤。當你讀完這兩本書后,保持向聰明的人學習。
使用庫

當你寫一個app,你可能會遇到那鞋前人已經解決了的問題。而且,大量的解決辦法都是開放的作為資源庫。 好好利用他們。

在我的***個app中,我寫的功能已經被其他庫所提供了,它們中的一些庫來自于標準的java中的一部分。另一些則是像Retrofit和Picasso這樣的庫。如果你不確定你要應該用什么庫,你能做3件事:

1.聽Google IO Fragmented podcast episode
2.訂閱Android Weekly
3.尋找解決類似問題的開源應用。你可能發現它們用了第三發的庫(third-party library)或者用了你并沒有在意的標準的java庫。
總結

寫一個好的Android app是非常難的。不要因為重復我的錯誤讓它變的更加艱難。

責任編輯:chenqingxiang 來源: 西二旗劍客
相關推薦

2014-10-24 10:36:32

程序員

2015-08-04 09:59:29

編程學編程

2020-05-08 15:30:42

PostgreSQL數據庫數據

2009-07-27 10:05:01

富士康職場

2024-06-03 00:00:00

Tailwind工具CSS

2014-08-15 15:01:29

時間軸

2019-04-23 05:35:45

開發碼農

2023-09-28 13:21:32

2020-09-21 06:50:29

勒索軟件攻擊網絡安全

2014-09-05 13:37:29

程序員

2020-11-05 10:33:01

開發代碼技術

2015-08-05 09:31:42

開發六件事

2013-04-08 09:54:34

2020-05-19 21:06:17

任正非華為員工

2013-11-13 11:05:41

2014-08-12 09:22:05

程序員

2016-04-07 10:49:28

游戲開發者

2018-03-26 15:30:31

人工智能機器人馬云

2020-10-20 10:14:01

JVM內存模型

2013-05-21 09:32:11

ChromebookChrome OS
點贊
收藏

51CTO技術棧公眾號

中文字幕无码不卡免费视频| 午夜精彩视频| 色8久久久久| 欧美日韩一区二区三区在线看| 国语精品免费视频| 99久久.com| 国产福利视频一区| av剧情在线观看| 欧美区在线观看| 自拍偷拍一区二区三区四区| 亚洲婷婷在线| 91高清视频免费观看| 欧美电影免费观看高清完整| 欧美在线视频全部完| 91精选福利| 成人免费视频一区| 欧美精品七区| 国产精品久久天天影视| 国自产精品手机在线观看视频| www国产精品视频| 在线观看成人影院| 国产成人av电影在线观看| 99一区二区| 成人午夜国产| 欧美激情中文网| 另类专区亚洲| 亚洲国产精品va在线观看黑人| 国产精品一区在线看| 一区二区视频免费在线观看| 国自产拍偷拍精品啪啪一区二区| 模特精品在线| 欧美精品一区三区在线观看| 日韩欧美精品| 欧亚精品中文字幕| 国产精品乱战久久久| 蜜月aⅴ免费一区二区三区| 中文字幕在线直播| 欧美精品一区二区蜜臀亚洲| 日本不卡影院| 欧美xxxx老人做受| 国产精品探花在线| 国产一二三精品| 中国成人在线视频| 久久电影网站中文字幕| 欧美区高清在线| 青青草国产成人av片免费| 欧美极品视频一区二区三区| 亚洲一区二区免费看| 裸模一区二区三区免费| 日韩精品国产欧美| 这里只有精品66| 国产精品一区二区黑丝| 一级二级三级欧美| 久久精品国产在热久久| 国产三级中文字幕| 夫妻av一区二区| 少妇性饥渴无码a区免费| 久久精品夜夜夜夜久久| 成年人视频在线| 亚洲精品美国一| 宅男宅女性影片资源在线1| 天天影视网天天综合色在线播放| 超碰在线首页| 欧美综合一区二区三区| 91豆花视频在线播放| 国产亚洲免费的视频看| 一区二区三区四区高清视频 | 午夜精品福利在线| 美女的诞生在线观看高清免费完整版中文 | 99热在线成人| 国产中文日韩欧美| 一本一道久久a久久精品蜜桃| 在线观看福利一区| 国产午夜精品久久| 色综合888| 日韩在线观看网址| 久久精品一偷一偷国产| 日韩人妻精品无码一区二区三区| 综合在线影院| 操人视频在线观看欧美| 色一区二区三区四区| 欧洲精品在线一区| 99精品一区二区三区| 天天干天天玩天天操| 在线观看亚洲一区| 国产精品传媒麻豆hd| 国产精品免费电影| 久草精品在线观看| 四虎最新地址发布| 日韩欧美精品三级| 老汉色老汉首页av亚洲| 国产三区精品| 国产区在线观看成人精品 | 免费高清在线视频一区·| 日本欧美黄色片| 福利视频导航一区| www.一区| 99国产在线观看| av动漫一区二区| 免费在线超碰| 久久综合伊人77777蜜臀| 欧美精品九九| 日本999视频| 精品剧情v国产在线观看在线| 青青草国产成人a∨下载安卓| 欧美 另类 交| 国产精品国产三级国产三级人妇| 污污的视频在线观看| 91美女片黄在线观| 91免费看`日韩一区二区| 国产香蕉在线| 国产精品中文字幕在线观看| 99久久免费视频.com| jizz亚洲| 亚洲影影院av| 国产精品理论在线观看| 美女福利一区二区| 国产精品高潮呻吟久久av黑人| 高清国产一区二区| av中文字幕在线| 欧美专区第一页| av毛片久久久久**hd| 人妖欧美1区| 亚洲在线视频福利| 久久久成人av毛片免费观看| 成人激情直播| 欧美视频中文字幕在线| av在线不卡顿| 中文在线www| 91精品在线观| 欧美视频在线观看 亚洲欧| 五月天综合网站| 日本1级在线| 国产日韩一区二区三区| 欧美一区二区美女| 麻豆国产精品官网| 午夜激情电影在线播放| 国产精品www在线观看| www.日韩欧美| 国产三级欧美三级| 免费av一区| 色佬视频在线观看| 成人高清在线观看| 精品国产91久久久久久久妲己| 久久精品国产成人一区二区三区| 日本美女一区| 日韩精品一区中文字幕| 日韩av大片在线| 日韩欧美精品在线观看| 久久三级视频| 91国拍精品国产粉嫩亚洲一区| 日韩精品视频久久| 国产成人福利网站| 欧美中文字幕一区| 精品写真视频在线观看 | 亚洲男人第一网站| 91丨九色丨蝌蚪富婆spa| 天堂99x99es久久精品免费| 最新地址在线观看| 国产一区二区三区高清| 精品小视频在线| 国产欧美视频一区二区| 91蜜臀精品国产自偷在线| 久热国产在线| 青草网在线观看| 日韩av手机在线看| 欧美精品18+| 91在线视频播放地址| 欧美a级片视频| 在线xxxx| 国产又黄又猛又粗| 国产亚洲一区二区三区在线播放| 精品亚洲永久免费精品| 国产精品国产三级国产普通话蜜臀| 亚洲一区二区| 成人在线免费av| 亚洲欧洲闷骚av少妇影院| 综合色婷婷一区二区亚洲欧美国产| 欧美极品欧美精品欧美视频 | 免费在线亚洲| 国产亚洲精aa在线看| 国产有码在线| 日韩精品xxxx| 国产99在线播放| 日韩亚洲在线观看| 91黄色免费看| 久久夜色精品国产欧美乱极品| 欧美阿v一级看视频| 99riav视频一区二区| 免费黄色片在线观看| 欧美无砖专区免费| 亚洲自拍偷拍第一页| xxx一区二区| 欧美精品在线观看播放| 国产欧美中文在线| 久久先锋影音| jvid福利在线一区二区| 国产精品久久久久久久久久齐齐| 电影在线高清| 国产黄色片大全|