原创 算法學習(三)數組問題

一、數組的問題 leetCode283. 移動零 給定一個數組 nums,編寫一個函數將所有 0 移動到數組的末尾,同時保持非零元素的相對順序。 示例: 輸入: [0,1,0,3,12] 輸出: [1,3,12,0,0] 說明: 必須在原

原创 Java 註解的介紹

1.註解的分類 普通註解 元註解 自定義註解 1.1普通註解 @Override 當前方法的定義一定要覆蓋父類的方法 @Deprecated 編譯器會出現一些警告信息 @SuppressWarnings 忽略編譯器的一些警告

原创 算法學習(二)時間複雜度

一、時間複雜度分析 1、什麼是大O O(f(n))表示運行算法所需要執行的指令數,和f(n)成正比 二分查找法O(longn)   所需執行指令數: a*longn 尋找數組中最大/最小值O(n)   所需執行指令數 :b*n 歸併排序

原创 Android Jetpack組件學習 Room

一、配置gradle 在build.gradle (Module: app)中 apply plugin: 'kotlin-kapt' ... dependencies { // Room components implement

原创 RxJava的使用入門

RxJava是一個使用可觀察序列來編寫異步和基於事件的程序的庫。 首先添加依賴 implementation 'io.reactivex.rxjava2:rxjava:2.2.6' 1. Hello World 1.1 先寫一個

原创 EventBus 及其索引源碼分析

EventBus項目地址爲https://github.com/greenrobot/EventBus,clone到本地,主要看EventBus這個類就可以 關於EventBus的使用可以閱讀這篇文章https://blog.cs

原创 Android開發工程師如何寫簡歷

第一章 一、簡歷表達的宗旨 1、簡潔性 排版清晰 簡介不是少,亮點,優勢要突出 挑選重要的突出的表達 2、真實性 可以包裝,不能僞造 量化指標說明(前後crash量的變化,線上bug數的變化,開發成本節約了多少) 3、全面

原创 Android Jetpack組件學習 ViewModel & LiveData

一、簡介 ViewModel - 提供了一種創建和檢索綁定到特定生命週期的對象的方法。ViewModel通常存儲視圖數據的狀態,並與其他組件通信,例如數據存儲庫或處理業務邏輯層。 LifecycleOwner / Lifecyc

原创 Android性能分析與優化學習(二) App啓動優化

一、App啓動優化介紹 1、背景介紹 第一體驗 八秒定律 2、啓動分類 冷啓動 耗時最多,衡量標準 ClickEvent -> IPC -> Process.start ->ActivityThread(單獨app進程

原创 Android bitmap佔用內存的大小

文件夾對應的關係 會根據不同的密度進行縮放 會根據不同的密度進行縮放 運行時獲取大小 圖片來源 png讀取,1121314=58688 jpg讀取 不同drawable中的圖片大小 在對應的密度裏面

原创 Android性能分析與優化學習(一)App性能概覽與平臺化實踐

一、性能優化有哪些難題 1、性能表現差 app 啓動慢,卡頓,丟幀等 內存佔用高,抖動頻繁 耗電,網絡請求慢 崩潰率,異常率高 2、線上問題無從追查 如何保證異常感知靈敏度 如何復原案發現場 如何快速止血成功 3、性能優化

原创 Retrofit源碼分析

項目地址爲https://github.com/square/retrofit 官方文檔爲https://square.github.io/retrofit/ 這裏分析的版本是2.3.0 1.動態代理 代理模式是一種常用的設計模式

原创 EventBus及其索引的使用

一、EventBus的介紹 EventBus是事件總線的意思,是一個事件發佈和訂閱框架,解耦發佈者和訂閱者,用來簡化Android的組件間通信,如Activity,Service,Fragment之間的通信等,在異步線程和主線程通

原创 OkHttp的使用

1.介紹 OkHttp是由Square公司開發的一個用於Android和Java的HTTP/HTTP2的網絡請求庫,它的一些優點: 在HTTP2的支持下,如果請求的host是同一個時,允許這些請求共用一個socket 使用連接池

原创 算法學習(八)遞歸和回溯法

這樣的算法思想通常都應用在樹形問題上 leetcode17. 電話號碼的字母組合 給定一個僅包含數字 2-9 的字符串,返回所有它能表示的字母組合。 給出數字到字母的映射如下(與電話按鍵相同)。注意 1 不對應任何字母。 輸入:"23"