筆者因爲在近期須要找工做,因此近期最主要的任務就是準備面試,不打無準備之仗。只有你準備充分了,那麼你想獲得的機會纔可能有機會入你懷中。面試
筆者會將準備面試的學習過程記錄下來,方便本身覆盤的同時也但願能給一道找工做的小夥伴們一些幫助。筆者準備的內容大綱以下bash
接下來開始本篇博客的正菜:post
ALPHA_8 每一個像素佔用1byte內存
ARGB_4444 每一個像素佔用2byte內存
ARGB_8888 每一個像素佔用4byte內存(默認)
RGB_565 每一個像素佔用2byte內存性能
在Android中,Bitmap的存儲分爲兩部分,一部分是Bitmap的數據,一部分是Bitmap的引用。 在Android2.3時代,Bitmap的引用是放在堆中的,而Bitmap的數據部分是放在棧中的,須要用戶調用recycle方法手動進行內存回收,而在Android2.3以後,整個Bitmap,包括數據和引用,都放在了堆中,這樣,整個Bitmap的回收就所有交給GC了,這個recycle方法就不再須要使用了。學習
啓動服務兩種方式this
1.startServicespa
onCreate() --> onStartCommand() --> onDestroy()
2.bindService
onCreate() --> onBind() --> onUnbind() --> onDestroy()
bind的方式開啓服務後,若是開啓者被銷燬了,它也會跟着一塊兒銷燬。綁定者能夠調用服務裏的方法。
3.通訊方式
服務和Activity、服務和服務之間能夠經過Binder對象、Broadcast(廣播)進行通訊。
在使用Handler的時候,每每是須要在子線程中作耗時任務的,可是當任務未執行完就把該Handler所在的Activity銷燬的話,它是沒法被GC的。由於持有非靜態內部類的引用是沒法被內存回收,因此會出現內存泄露。
解決方法主要在於兩點:
經過繼承Handler就能夠實現一個Handler靜態內部類,還能夠在構造方法中添加對外部Activity的弱引用。
public class MainActivity extends Activity {
......
private final MyHandler mHandler = new MyHandler(this);
private static class MyHandler extends Handler {
private final WeakReference<MainActivity> mActivity;
public MyHandler(MainActivity activity) {
this.mActivity = new WeakReference<MainActivity>(activity);
}
@Override
public void handleMessage(Message msg) {
}
}
}
複製代碼
序列化,表示將一個對象轉換成可存儲或可傳輸的狀態。
須要序列化的緣由有三種狀況: