日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

给Android程序员的六个建议

發布時間:2025/5/22 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 给Android程序员的六个建议 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

給Android程序員的六個建議

分類:?安卓相關 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. 尋找開源代碼的應用 去解決類似你需要的功能或模塊. 這個應用可能會用到你不知道的第三方庫.
  • 版權聲明:本文為博主原創文章,未經博主允許不得轉載。

    總結

    以上是生活随笔為你收集整理的给Android程序员的六个建议的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。