給Android程式設計師的六個建議
如果你一年前寫的程式碼 , 在現在看來你還感覺寫的很不錯 , 那麼說明你學習的不夠多.
-
不要在Context中持有靜態引用
public class MainActivity extends LocationManagingActivity implements ActionBar.OnNavigationListener, GooglePlayServicesClient.ConnectionCallbacks, GooglePlayServicesClient.OnConnectionFailedListener { //... private static MeTrackerStore mMeTrackerStore; //... @Override protected void onCreate(Bundle savedInstanceState) { //... mMeTrackerStore = new MeTrackerStore(this); } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
這個毛病可能很多人都會犯過 , 如果
MeTrackerStore
通過構造持有activity
的引用 , 那這個activity
就永遠不會被垃圾回收.(除非靜態變數被重新分配至不同的activity
)這是因為
MeTrackerStore
是靜態的 , 而對於靜態變數的儲存, 當應用程式啟動 , 不收集 , 知道退出該應用程式正在執行的程式 .注: 從技術層面來說 , 你可以持有一個靜態應用的
application context
, 這樣不會造成記憶體洩露 , 但不建議這麼做 -
注意控制”隱性引用”物件的生命週期
public class DefineGeofenceFragment extends Fragment { public class GetLatAndLongAndUpdateMapCameraAsyncTask extends AsyncTask<String, Void, LatLng> { @Override protected LatLng doInBackground(String... params) { //... try { //Here we make the http request for the place search suggestions httpResponse = httpClient.execute(httpPost); HttpEntity entity = httpResponse.getEntity(); inputStream = entity.getContent(); //.. } } } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
這段程式碼有很多問題 , 我們把終點放在隱式引用 . 在Java中 , 對於包含靜態內部類的類 , 非靜態內部類具有隱式引用.
本段程式碼中 , 對與外部類
DefineGeofenceFragment
將持有一個GetLatAndLongAndUpdateMapCameraAsyncTask
引用對與包含內部類的外部類來說 , 他們有一個隱含的引用包含匿名類的類的例項 , 該
GetLatAndLongAndUpdateMapCameraAsyncTask
有一個隱含的引用片段 -
Android Studio 讓你更快捷, 更舒服
AS提供的快捷鍵和live templates,會讓你寫起程式碼飛快,目前Android Studio已經可以支援NDK開發,日後會有越來越多的人喜歡Andriod Studio並使用它來開發。 -
一個方法只做一件事
有一個在我寫這超過100行的類之一的方法。這樣的方法難以閱讀,修改和重新使用。試著寫的方法只能做一件事。通常情況下,這意味著你應該懷疑的是超過20行程式碼的方法。在這裡,你可以招募的Android Studio來幫助你發現問題的方法。 -
向比你有經驗的人學習
這可能聽起來微不足道,但它是一個錯誤,我做的時候,我寫我的第一個應用程式。
當你寫一個應用程式,你會犯錯誤。其他人已經取得了這些錯誤。從這些人的瞭解。你是在浪費你的時間,如果你重複別人的可以避免的錯誤。我浪費了大量的時間在我的第一個應用程式使得我本來可以避免,如果我只是花了一點時間,從經驗豐富的軟體開發人員學習錯誤。
閱讀程式設計師修煉。然後閱讀有效的Java。這兩本書將幫助你避免我們作出開發新手常犯的錯誤。當你與那些書做,不停地尋找聰明的人學習的榜樣。 -
多使用第三方庫
當你寫一個應用時 , 你可能會遇到更聰明 , 更有經驗的人已經解決了你的需求或問題. Android 有很多開源庫 , 我們可以多利用他們。
在我的應用中 , 我經常使用第三方庫提供的功能 , 比如 Retrofit 和 Picasso . 如果你不確定你需要哪種型別或功能的庫 , 下面介紹一下比較流行的幾款庫:1. Google 廣播 (http://fragmentedpodcast.com/episodes/9/) , 告訴你什麼情況 使用什麼庫 , 例如 Dagger Retrofit Picasso 和 Mockito 2. 訂閱Android週刊 . 他們會給你推送最新的第三方庫或比較最新 , 最近比較流行的設計模式及功能. 3. 尋找開原始碼的應用 去解決類似你需要的功能或模組. 這個應用可能會用到你不知道的第三方庫.
版權宣告:本文為博主原創文章,未經博主允許不得轉載。
相關文章
- 給程式設計師“菜鳥”的6條建議程式設計師
- 給中級程式設計師突破瓶頸的幾個建議,收藏~程式設計師
- 1024 寫給程式設計師的一些建議程式設計師
- Android程式設計師的Java後臺學習建議Android程式設計師Java
- #給java程式設計師的10條建議,吐血推薦!Java程式設計師
- 給各位PHP程式設計師十點未來的建議PHP程式設計師
- 程式設計師也要養生,給DBA和IT同行的一些建議程式設計師
- 每個程式設計師必須掌握的常用英語詞彙分享給你(建議收藏)程式設計師
- 戰神系列戰鬥設計師:給遊戲設計師的 50 條建議遊戲設計師
- 一個老程式設計師的程式設計之路,寫給年輕的程式設計師們程式設計師
- 自學程式設計的朋友,我想給你們這 5 個建議程式設計
- 程式設計師必備基礎:改善Java程式的20個實用建議程式設計師Java
- 有哪些讓程式設計師受益終生的建議程式設計師
- Android JNI&NDK程式設計小結及建議Android程式設計
- [分享]2021 年對 React 前端程式設計師的 10 個程式碼最佳實踐建議React前端程式設計師
- 大神的分享:Java程式設計師的學習生涯中各個階段的建議Java程式設計師
- 給迷茫的JAVA程式設計師一些中肯建議, 你還在虛度光陰嗎?Java程式設計師
- 聊聊程式設計師的職場“圍城”,給出作為過來人的一些建議程式設計師
- 關於要不要轉行做程式設計師的建議程式設計師
- 程式設計幾點建議程式設計
- python核心程式設計:入門Python程式設計的8個實踐性建議Python程式設計
- 給程式設計師的一頓午餐?程式設計師
- 學習Java程式設計的建議Java程式設計
- 給2019前端的5個建議前端
- 妹子幫個忙!嫁給程式設計師好嗎?程式設計師
- 跳槽季的查漏補缺,談談對Java程式設計師學習當中各個階段的建議(第六階段)Java程式設計師
- 程式設計師編寫技術文章需要的四個輔助神器 ,強烈建議收藏 !程式設計師
- Midway 後端程式碼的設計建議後端
- 如何自學程式設計及Java、上手真實開發及轉行程式設計師的建議Java行程程式設計師
- 速看!程式設計師巧談薪資的六個小技巧!程式設計師
- 程式設計漫談(二十):如何自學程式設計及Java、上手真實開發及轉行程式設計師的建議Java行程程式設計師
- 程式設計師給女友最好的禮物是....程式設計師
- 給各位程式設計師的一些忠告程式設計師
- 寫給新入行的程式設計師小朋友程式設計師
- 寫給前端程式設計師的命令列入門前端程式設計師命令列
- 我們公司給新人的README,值得每個程式設計師一讀程式設計師
- 架構師給程式設計師的一封信架構程式設計師
- 給遊戲關卡設計的建議,如何用好引擎工具遊戲
- 不會填坑的程式設計師不是一個好程式設計師!程式設計師