原创 初探Retrofit使用方法

概念Retrofit框架是Square公司出品的網絡框架,效率快、實現簡單。運用註解和動態代理,極大簡化網絡請求繁瑣步驟特點    性能好、處理快,使用簡單;默認使用okhttp處理網絡請求;默認使用Gson解析。常用註解接口    Re

原创 Android Service使用方法回顧

    Service作爲Android四大組件之一,承載着重要的作用,同時,熟悉Service也會爲理解Binder打下重要的基礎,這裏是我初學Android時做的關於Service的筆記,現在總結到這篇文章中。概述android中的s

原创 代理模式與java動態代理

定義    代理(Proxy)是一種設計模式,提供了對目標對象另外的訪問方式;即通過代理對象訪問目標對象.這樣做的好處是:可以在目標對象實現的基礎上,增強額外的功能操作,即擴展目標對象的功能。有點類似於裝飾者模式。但是與裝飾者模式的區別是

原创 IOS TableViewl詳解(兩種Cell註冊方式)

學習iOS第二週,學習到了比較重要的組件TableView,照着書上敲,沒有實現效果。在同事的幫助下,有了比較清晰的理解,記錄在此。 我使用的完全是xib的方式。我們先按照這種方式來梳理出Demo 先看下項目結構目錄 先從最簡單的mod

原创 單例模式

定義    單例模式確保某個類只有一個實例,而且自行實例化並向整個系統提供這個實例。理解    在計算機系統中,線程池、緩存、日誌對象、對話框、打印機、顯卡的驅動程序對象常被設計成單例。這些應用都或多或少具有資源管理器的功能。每臺計算機可

原创 React State Props使用示例

前言 感悟 這幾天擼React代碼,在擼之前沒有仔仔細細閱讀官方文檔,拿着功能需求按照以往其他語言編程經驗及隨用隨查的API進行開發。發現這個過程是痛苦的,每百度一個簡單的功能實現,都會耗費巨大的盡力和篩選有效信息時間,其實靜下心

原创 Android SystemServer解析

概述    理解該文章,需要閱讀者對Android進程間通信方式Binder有一定了解,理解Binder的方式之一便是找到一個系統中binder通信的例子,例如activity啓動過程,該過程描述了應用進程的activity和系統進程,準

原创 淺談Android java層ServiceManager Android Framework學習(十一)之從ServiceManager獲取Native層服務

概述ServiceManager作爲Android進程間通信binder機制中的重要角色,運行在native層,由c++語言實現,任何Service被使用之前,例如播放音樂的MediaService,例如管理activity的Activi

原创 Builder模式

定義建造模式是對象的創建模式。建造模式可以將一個產品的內部表象(internal representation)與產品的生產過程分割開來,從而可以使一個建造過程生成具有不同的內部表象的產品對象。理解一個複雜對象的表示應該與它的構建過程分離

原创 小米 Android ACTION_UP不響應

問題概要 在小米手機(測試機爲小米4LTE)上,對一個TextView/Button設置OnTouchListener,長按View擡起時,並沒有收到ACTION_UP時間,而是收到了ACTION_CANCEL事件。 理論 查閱資

原创 Android藍牙耳機/揚聲器音頻切換

需求背景 要求某些場景已經插入耳機或連接了藍牙耳機,需要使用揚聲器播放音頻 實現調研 有線耳機的情況 排除藍牙耳機情況,使用有線耳機,切換時只需要打開/關閉揚聲器即可。這樣就可以實現在插入耳機的情況下,使用揚聲器播放。 代碼如下:

原创 byte 16進制 2進制理解

十六進制 以下內容參考博客:關於0x16進制 概念 以0x開始的數據表示16進制,計算機中每位的權爲16(10進制的權爲10),即(16進制)10 = (10進制)1×16。備註:這裏的0是數字0,不是字母O! 爲什麼需要十六進制

原创 靠譜Android Studio JNI Demo

前言 作爲工作了近四年時間的Android開發,搞通這個Demo用了一個工作日,覺得自己動手能力有些差,所以記錄下。這裏我們不介紹JNI的基礎理論知識。只講Demo流程。 Demo 第一步 創建Demo工程,從SDK Manage

原创 異步任務串行解決方案

問題描述 在業務開發時,有時不僅僅是拉取一個數據接口展示列表這麼簡單。舉一個購買場景: 第一步調用網絡接口登錄 第二步調用網絡接口購買 第三步查詢購買結果 第四步調用DBApi將購買結果寫入本地 第五步向外回調結果 這裏所有的操作

原创 AS Gradle task構建失敗CompilationFailedException解決

問題 在編譯運行項目時,會提示一些Task的錯誤,但並沒有列出錯誤的具體原因。我們無法根據已有的提示找出錯誤所在。如下: org.gradle.api.tasks.TaskExecutionException: Execution f