原创 Android 百度地圖周邊雷達(v6.1.3)及覆蓋物

閒聊百度地圖SDK 百度地圖API是爲開發者免費提供的一套基於百度地圖服務的應用接口,包括JavaScript API、Web服務API、Android SDK、iOS SDK、定位SDK、車聯網API、LBS雲等多種開發工具與

原创 Android setContentView()源碼解析

前言 在Activity中一般第一句就是調用setContentView(R.layout.XXX),但這其中系統做了那些工作? 我們知道,在ClassLoader裝載了MainActivity之後,首先創建了Applicatio

原创 Android Zygote啓動流程源碼解析

本文已授權微信公衆號《鴻洋》原創首發,轉載請務必註明出處。 Zygote進程是Android和Java世界的開創者。在Android系統中,所有的應用進程和SystemServer進程都是由Zygote進程fork而來。其重要

原创 Android MVC、MVP和MVVP的概念、運用及區別

少年不識愁滋味,愛上層樓。愛上層樓,爲賦新詞強說愁。 而今識盡愁滋味,欲說還休。欲說還休,卻道天涼好個秋。 一首辛棄疾的《醜奴兒·書博山道中壁》送給大家 概述 MVC、MVP和MVVM都是爲了解決界面呈現和邏輯代碼分離而出現的

原创 Android 初探Retrofit2.0.1(最新版)

概述 看見這段開頭,你應該聽過Retrofit的大名但是沒有真正的運用過,或者用過Retrofit1.9但是沒有跟上更新的進度。無論什麼原因,你都該好好了解下這篇博客。1.9和2.0.1版本差別很大。網上相關的教程很少,又因爲是初

原创 Android EventBus3.0使用及源碼解析

本文已授權微信公衆號《非著名程序員》原創首發,轉載請務必註明出處。 叨了個叨 最近因爲換工作的一些瑣事搞的我一個頭兩個大,也沒怎麼去學新東西,實在是有些愧疚。新項目用到了EventBus3.0,原來只是聽說EventBus的鼎

原创 Android 百度定位SDK(v6.1.3)結合方向傳感器

概述 這是第二篇關於百度地圖SDK的博客。 推薦閱讀: Android 百度地圖周邊雷達(v6.1.3) Android 百度鷹眼軌跡SDK(v2.1.6) 今天主要寫百度地圖定位和方向傳感器結合這麼一箇中間塊案例。 流程 申

原创 Android 左滑or右滑抽屜菜單

概述 本篇只是個示例,理解本篇博客後,可實現仿QQ5.0側滑,左右兩側滑動菜單。再加上各種縮放,平移特效。DuangDuang的。本篇效果如下: 實現步驟 因爲需要水平滑動,所以繼承HorizontalScrollView 本

原创 Android 代碼混淆實戰

本文已授權微信公衆號《鴻洋》原創首發,轉載請務必註明出處。 什麼是代碼混淆? Java 是一種跨平臺的、解釋型語言,Java 源代碼編譯成中間”字節碼”存儲於 class 文件中。由於跨平臺的需要,Java 字節碼中包括了很多

原创 Android SystemServer啓動流程源碼解析

簡介 Android系統中各個進程的先後順序爲: init進程 –-> Zygote進程 –> SystemServer進程 –>應用進程 其中Zygote進程由init進程啓動,SystemServer進程和應用進程由Zyg

原创 Android XML佈局文件解析過程源碼解析

我們知道,在Activity#setContentView()中會調用PhoneWindow#setContentView()。而在PhoneWindow#setContentView()中有這麼一句mLayoutInflater

原创 Android 高級自定義Toast及源碼解析

本文已授權微信公衆號《非著名程序員》原創首發,轉載請務必註明出處。 Toast概述 Toast的作用 不需要和用戶交互的提示框。 更多參見官網:https://developer.android.com/guide/topic

原创 Android 四種線程池

爲什麼要使用線程池 當同時併發多個網絡線程時,引入線程池技術會極大地提高APP的性能。 顯著減少了創建線程的數目。 防止內存過度消耗。控制活動線程的數量,防止併發線程過多。 使用條件:假設在一臺APP完成一項任務的時間爲T

原创 Android Launcher啓動應用程序流程源碼解析

帶着問題看源碼 點擊桌面Launcher圖標後做了哪些工作? 應用程序什麼時候被創建的? Application和MainActivity的onCreate()方法什麼時候被調用的? 概述 在Android系統中,啓動四大組件

原创 Android LinearLayout實現下拉刷新

效果圖 實現思路 一般刷新給ListView設置addHeaderView,這裏我們可以模仿着這種方式實現可刷新的LinearLayout。然而LinearLayout並沒有提供addHeaderView方法,既然不提供那麼我們