原创 記一次Android UI適配填坑經過

記一次Android UI適配填坑經過 概述 Android的多屏幕適配算是一個老生常談的話題,也是一個Android應用開發工程師的必備技能。Android設備五花八門,屏幕小到手錶,大到幾十上百英寸的TV,相同分辨率,不同屏幕

原创 Android自定義View-矩形圓角進度條

Android自定義View——矩形圓角扇形進度View 概述 最近的項目需求中,有一個顯示下載進度的需求。大概是這樣子的,一個圓角矩形ImageView作爲背景圖,以這個矩形的中心作爲圓心,圓角矩形的外切圓上的某個點爲起點,進度

原创 Android屏幕適配方案: AutoDensity&smallest-width

目錄前言一、屏幕適配的重要概念1.1 屏幕尺寸、屏幕分辨率、屏幕像素密度1.2 px、dp、dip、dpi1.3 mdpi、hdpi、xdpi、xxdpi1.4 values-sw[xyz]dp二、smallest-width適配

原创 AspectJ 編程指南

寫在前面的話 最近遇到一個需求:用戶快速點擊某個按鈕時,或者快速點某幾個按鈕時,只能響應第一個。一開始我是拒絕的,後來覺得這很合理。這功能剛好用AOP的編程思想來實現,說到AOP想到的自然是AspectJ。於是用有道翻譯,翻譯來一

原创 Android WorkFlow 助你輕鬆構建複雜流程

概述 有時候完成一個任務可能需要執行A、B、C、D、E、F…若干子個任務。可能是這樣子的,A完成後執行B,B完成後執行C…直到所有任務完成: 也可能是這樣子的:先執行A,A完成後可以併發執行BCDE,BCED都完成後執行F,F完

原创 一行代碼實現Android App指引

目錄概述指引需求分析入門級指引升級版指引指引需求的抽象指引的技術實現指引的要素:Shape封裝指引步驟:GuideInfo繪製指引要素:GuideView管理指引:GuideManager承載GuideView的載體:GuideD

原创 一次CPU使用率100%引發的思考

一次CPU使用率100%引發的思考 最近要發一個版本,臨了測試在掛機的時候發現一個CPU佔用高,導致App卡死的bug。經過這次bug 真切感受到寫代碼完成功能容易,一旦代碼量上去了,出問題的時候如何定位就是個難題。爲了儘可能 少

原创 一個Socket通信案例

1. 概述 公司產品客戶端需要通過socket和C++後臺交互,大概是這麼一個流程: 通過配置文件,解析服務器的地址和端口; 打開socket通道,建立和服務器的長鏈接; 和服務器通信,發送指令和接收指令等; 應用退出,關閉連接

原创 從觀察者模式的角度分析 Lifecycle-aware components

前言 使用RxJava2有一段時間了,由於沒有認真去研究過,一直停留在簡單的使用階段,更準確地說是在Retrofit中配合RxJava2CallAdapter使用RxJava2的強大能力。心血來潮(迫切需要),想了解下RxJava

原创 Ubuntu 16.04 LTS 編譯 Android 7.1

Ubuntu 16.04 LTS 編譯 Android 7.1 最近被迫要搭一個android源碼的編譯環境,目標系統源碼是RK3399,android 7.1.2。首先裝了Ubuntu18 LTS,發現很多環境都要自己安裝,包括

原创 Android自定義View——電池

Android自定義View——電池 概述 最近的工作中有一個需求,需要顯示電量,產品說前面的開發已經做了,就在另一個項目裏,複製過來就好了。行,那就複製唄,結果一看,真是驚呆了,用的是一個layer-list的drawable,

原创 如何優雅地使用GreenDao

前言 數據庫操作是Android開發中的重要部分,通常我們不直接使用SDK中的Sqlite API(難度大,開發效率低,當然運行效率是最快的),而是使用第三方的ORM框架,如 GreenDao。GreenDao可以極大地提高建庫,升級

原创 一個Android Log框架

一、概述 在工作過程中,發現一個比較有意思的現象:每個同事都有一個自己的代碼庫,裏面基本都包含一個Log的工具。這充分說明了Log在Android 開發中的重要,不管如何實現,大家都不自覺地按照自己的習慣,完成了一個Log工具。每個開

原创 七牛雲存儲之文件上傳(Android)

七牛雲存儲之文件上傳 項目中要用到七牛雲存儲,用於存儲用戶的文件數據,於是,看了一下七牛的文檔(Android SDK 和 Java SDK),寫了一個 demo 。本文記錄一下 android 端上傳文件到七牛服務器的步驟,並對七牛

原创 Jenkins 持續集成之使用批處理替換文件中的目標字符串

Jenkins 持續集成之使用批處理替換文件中的目標字符串 一、背景 在 Android 項目開發中使用 Jenkins 持續集成,將可以解耦的 module 作爲一個獨立項目,然後在 Jenkins 上自動打包,推送到 maven