原创 Linux系統上Gitlab安裝、漢化和郵箱配置筆記

簡介 GitLab 是一個用於倉庫管理系統的開源項目,使用Git作爲代碼管理工具,並在此基礎上搭建起來的web服務,可通過Web界面進行訪問公開的或者私人項目。 環境要求 內存:2G以上 安裝步驟 1、配置yum源 vim /et

原创 Mac上搭建Flutter開發環境(Android模擬器和IOS模擬器開發)

前言 最近公司要求使用跨平臺語言開發新的應用,這幾天也對比了ReactNative和Flutter,最終決定入坑Flutter,今天剛配置完Flutter的開發環境,Flutter中文網也有相應的安裝開發環境的介紹,這裏主要是站在一個

原创 Linux系統上Gitlab安裝與漢化筆記

簡介 GitLab 是一個用於倉庫管理系統的開源項目,使用Git作爲代碼管理工具,並在此基礎上搭建起來的web服務,可通過Web界面進行訪問公開的或者私人項目。 環境要求 內存:2G以上 安裝步驟 1、配置yum源 vim /etc/

原创 Java 集合全面整理

概述 在實際開發中,我們經常會對一組相同類型的數據進行統一的管理操作,到目前爲止,我們可以使用的數組結構,鏈表結構,二叉樹結構來實現; 數組的最大問題在於數組中的元素個數是固定的,要實現動態數組,畢竟還是比較麻煩,自己實現鏈表或者二

原创 Android內存泄漏全面總結

概述 內存泄漏伴隨着整個APP的開發過程,一個對象內存泄漏可能你不會在意,但是一個對象反覆內存泄漏或者多個對象同時內存泄漏,將導致你的APP內存直線上升,嚴重的還會導致OOM直接crash,所以我們在開發中應該及時發現內存泄漏並且修

原创 LeakCanary原理分析

概述 在上一篇LeakCanary使用詳細教程中,我們熟悉了LeakCanary的使用和初步描述了它的工作機制,這篇我準備從源碼的角度去分析LeakCanary的工作原理; 源碼分析 從上一篇中我們知道,LeakCanary在Appa

原创 Android面試總結--Android篇

相關文章:Android面試總結–Java篇 Activity生命週期 圖中需要注意一下幾點: 1.Activity實例是由系統自動創建,並在不同的狀態期間回調相應的方法。一個最簡單的完整的Activity生命週期會按照如下順序回調

原创 Android面試總結 -- Java篇

相關文章:Android面試總結 – Android篇 Object類的equal和hashCode方法重寫,爲什麼? 首先equals與hashcode間的關係是這樣的: 1、如果兩個對象相同(即用equals比較返回true),那

原创 LeakCanary使用詳細教程(附Demo)

導語 在Android的性能優化中,內存優化是必不可少的點,而內存優化最重要的一點就是解決內存泄漏的問題,在Android的內存泄漏分析工具也不少,比如PC端的有:AndroidStudio自帶的Android Profiler、MAT

原创 論23種設計模式在Android源碼中的應用--面向對象六大基本原則

單一職責原則 單一職責原則(Single Responsibility Principle 縮寫:SRP) 定義:就一個類而言,應該僅有一個引起它變化的原因。 聽起來也許很抽象,簡單的說就是:一個類(方法)不能擔任太多的職責,因爲過

原创 Sonar使用完整圖文教程(Ubantu服務器、AndroidStudio工程)

在這一篇我們主要介紹Sonar的使用方式,如果你還沒有安裝Sonar的話,可以看一下上一篇內容Sonar的安裝配置教程,詳細的介紹了Sonar服務的安裝配置步驟以及提供了所需的所有安裝包; 如果已經安裝好了Sonar服務就可以開始使用So

原创 Kotlin學習之路--面向對象

面向對象 我們都知道Java是面嚮對象語言,Kotlin同樣是面嚮對象語言,面向對象有三大特性五大原則,先複習一下什麼是面向對象的三大特性: 封裝(Encapsulation) 封裝,就是把客觀事物封裝成抽象的類,並且類可以把自己的數

原创 論23種設計模式在Android源碼中的應用--單例模式

概念 單例模式就是整個系統有且只有一個唯一的對象,單例模式思想相對比較簡單,但是確保整個系統有且只有一個對象,需要注意幾個點: 構造函數必須是private; 通過一個靜態方法返回單例類對象; 在多線程下注意單例模式的創建; 確保單例類

原创 論23種設計模式在Android源碼中的應用--概述篇

前言 當你求職面試的時候是否有這樣當經歷,面試官問你: 你在項目使用過的設計模式有哪些? 說說xx模式在你項目中的使用? 說說xx模式的實現原理是什麼? 說說xx模式在Android源碼中的體現? 等等,諸如此類的問題,你是否都能一一答出

原创 Kotlin學習之路--基礎篇

Kotlin程序執行入口 跟Java代碼一樣,Kotlin的函數入口也是一個main函數 fun mian(args:Array<String>){ println("Hello World") } args:變量名稱 Arra