給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. 尋找開原始碼的應用 去解決類似你需要的功能或模組. 這個應用可能會用到你不知道的第三方庫.
版權宣告:本文為博主原創文章,未經博主允許不得轉載。
相關文章
- 給年輕程式設計師的7個建議程式設計師
- 給Android程式設計師的一些面試建議Android程式設計師面試
- 我給所有新手程式設計師的建議程式設計師
- 給未來精英程式設計師的建議程式設計師
- 雷軍給程式設計師的五點建議程式設計師
- 寫給未來程式設計師的建議程式設計師
- 給新程式設計師的10條建議程式設計師
- 給新人程式設計師的 10 點建議程式設計師
- 給新手程式設計師的幾點建議程式設計師
- 年終工作總結:給新手程式設計師的幾個建議程式設計師
- 給程式設計師“菜鳥”的6條建議程式設計師
- 給程式設計師新手的一些建議程式設計師
- 給想成為程式設計師的大學生的8個建議程式設計師
- 一個老程式設計師的建議程式設計師
- 程式設計師跳槽的10個建議程式設計師
- 給中級程式設計師突破瓶頸的幾個建議,收藏~程式設計師
- 給未來程式設計師的15個頂級職業建議程式設計師
- 程式設計師:開始程式設計生涯的5個建議程式設計師
- 給各位PHP程式設計師十點未來的建議PHP程式設計師
- #給java程式設計師的10條建議,吐血推薦!Java程式設計師
- 陳皓:給程式設計師新手的一些建議程式設計師
- 給想當程式設計師的大二學生的建議程式設計師
- 贏得程式設計師尊重的 7 個建議程式設計師
- 贏得程式設計師尊重的7個建議程式設計師
- 給IT新人的15個建議:苦逼程式設計師的辛酸反省與總結程式設計師
- 1024 寫給程式設計師的一些建議程式設計師
- 給程式設計師的壞建議:不要工作得那麼辛苦程式設計師
- 程式設計師從書本學習程式設計的 5 個建議程式設計師
- Android程式設計師的Java後臺學習建議Android程式設計師Java
- 程式設計師避免精神崩潰的9個建議程式設計師
- 程式設計師擺脫疲勞的 11 個建議程式設計師
- 我給程式設計師新手寫簡歷的一些建議程式設計師
- 每個程式設計師必須掌握的常用英語詞彙分享給你(建議收藏)程式設計師
- 戰神系列戰鬥設計師:給遊戲設計師的 50 條建議遊戲設計師
- 如何提升你的能力?給年輕程式設計師的幾條建議程式設計師
- 一位阿里架構師給每個程式設計師的小建議阿里架構程式設計師
- 向中級程式設計師轉變的10個建議程式設計師
- 一個程式設計師對學弟學妹的建議程式設計師