原创 2019年推薦的技術書單

包括再次看的和首次看的書,很多書多次看收穫很大,溫故而知新,比如《重構》。摘錄基本覺得不錯的書 1.《Android開發藝術探索》 2.《Android 源碼設計模式解析與實戰》 3.深入理解java虛擬機 4.《重構》 5.《A

原创 AndroidBinder進程間通信系統

目錄 前言及知識準備 Service組件結構 Clinet組件結構 與Binder驅動程序交互 總結 Binder進程間通信實例 問題 本次 主要介紹Android平臺下Binder進程間通信庫。所謂通信庫,就是Adroid在應

原创 ReentrantReadWriteLock(互斥)和CountDownLatch(同步)解析

今天講一下Java常用的兩個類,一個是常用的互斥類,一個是同步。 ReentrantReadWriteLock ReentrantReadWriteLock和同一個包下面的ReentrantLock都是用於互斥。區別是Reentr

原创 產品方法論(三)

《結網》系列讀書筆記 這本書已經被陸續的讀完了,總結總是落後半拍,壞處是容易遺漏細節,不過這樣也有好處:那就是總結思考,把對我印象最深的寫出來。 產品經理的工作流程 檢查和體驗產品 騰訊的pony ma不只是作爲ceo,更是騰

原创 android的Binder通信機制java層淺談

1.Service Manager的Java代理對象 在Java層中,Service Manager的代理對象類型爲ServiceManagerProxy。它繼承並且實現了IServiceManager接口,其中四個成員函數和一個

原创 LeetCode(30)-Pascal's Triangle

題目: Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Return [

原创 程序員必備的10個輔助開發的軟件神器

程序員必備簡捷開發輔助工具總結 零:Notepad++ Notepad++ 程序員必備的文本編輯器,軟件小巧高效,支持27種編程語言,通喫C,C++ ,Java ,C#, XML, HTML, PHP,JS 等,推薦各位下載使用。

原创 Android的6個編程原則

面向對象的原則 1.單一原則 2.裏式替換原則 本質就是繼承和多態,繼承或者實現類可以代替父類 3.依賴倒置原則 本質就是面向接口(抽象類)編程 4.開閉原則 向擴展開放,向修改關閉 如何做到本質也是面向抽象編程 5.接口隔離 接

原创 安卓Binder入門

圖說架構 四部分結構 四部分 Client ,server ,servicemanager,binder驅動 binder內核:是一個文件,處於內核空間,能夠傳遞跨進程的數據,Binder引用計數,建立Binder的內存空間

原创 初級程序員如何把握機會,快速成長

本文並不是標題黨,下面說說自己的一些思考,廢話不多說,上結論: 問題就是最好的機會 不要害怕遇到問題,而是在遇到問題時候,刨根問底,搞清楚問題背後的原因,徹底的解決它,每次解決一個問題,你就能上一個臺階。久而久之,你遇到問題就不是

原创 歸併排序詳解(MergeSort)遞歸和非遞歸實現

歸併排序的概念及定義 歸併排序(Merge)是將兩個(或兩個以上)有序表合併成一個新的有序表,即把待排序序列分爲若干個子序列,每個子序列是有序的。然後再把有序子序列合併爲整體有序序列。 歸併排序是建立在歸併操作上的一種有效的排序算

原创 Android代碼如何重構

講一下Android代碼重構的思路 1.新增提取函數 <1>複雜邏輯拆成函數 <2>大函數拆成小函數 2.父類和子類之間轉移函數 <1> 把子類的x相同邏輯,提取成父類函數 <2> 把父類的非通用邏輯,提取成用到的個別子類中的函數

原创 Android 10適配總結

Android 10 聚焦移動創新、安全隱私和數字健康三大主題。 具體適配點如下: 1.原先支持向下兼容的V4和V7 support包,替換爲Android X包 2.存儲權限適配,變成分區存儲:應用內文件,應用外特定目錄文件和公

原创 深入淺出Java虛擬機-Java編譯概述

Java虛擬機存儲 上圖分爲線程共享和非共享,其中堆內存是用來存放Java對象的,虛擬機棧和本地方法棧都是存放方法信息,前者是通過棧幀結構存放方法的參數和本地變量,以及方法的返回地址和調用地址等信息,後者是存放本地方法的信息。

原创 一文學會Gradle安裝配置:透過現象看本質

背景 相信很多人第一次安裝androidstudio跑工程時候,會遇到一個問題:android sutdio第一次打開一個工程巨慢怎麼辦? 或者是gradle project sync filded錯誤 有沒有想過androids