原创 【UML】關於UML的一些思考

使用UML構造系統的結構,就是根據應用需求建立系統靜態模型的過程,UML結構包括了基本構造塊、公共機制和支配這些構造塊放在一起的規則, 其中,基本構造塊主要有1、事物2、關係和3、圖;公共機制主要有1、詳細說明2、修飾3、通用劃分和4、

原创 【面向對象】多態的一些理解

多態性是指在一個給定的類繼承層次結構中,同名的運動規律可在不同的類中具有不同的表現形式。   在JAVA中有兩種多態是指:運行時多態和編譯時多態。 關於類的多態性簡介如下: 多態(polymorphism)意爲一個名字可具有多種語義.在

原创 【UML】UML概述

 UML是一個標準的圖形表示法,它不是面向對象的分析和設計,也不是一種方法,它僅僅是一組符號而已。   UML的內容   首先,UML融合了Booch、OMT和OOSE方法中的基本概念,而且這些基本概念與其他面向對象技術中的基本概

原创 【Intent】對隱式Intent的運行時檢查保護:如相機調用失敗

類似打開相機,發送圖片等隱式Intent,是並不一定能夠在所有的Android設備上都正常運行。例如打開相機的隱式Intent,如果系統相機應用被關閉或者不存在相機應用,又或者是相機應用的某些權限被關閉等等情況都可能導致這個隱式的I

原创 【動態加載】Android動態加載進階:代理Activity模式

技術背景 簡單模式中,使用ClassLoader加載外部的Dex或Apk文件,可以加載一些本地APP不存在的類,從而執行一些新的代碼邏輯。但是使用這種方法卻不能直接啓動插件裏的Activity。 啓動沒有註冊的Activity的兩個

原创 【原理】Apk的安裝過程

Apk的安裝過程分兩步: 一、apk文件複製到程序目錄下(/data/app/) 二、爲應用創建數據目錄(/data/data/package name/)        提取dex文件到指定目錄(/data/dalvik-cache/

原创 【Service】Android中保持Service存活的方法

關於如何讓Service keep alive,我在上篇博客給出的解決方案是:方案一,讓服務器端發一個推送,檢查Service是否還存活;方案二,將Service獨立出來,運行在另一個進程中。 這兩個方案有些地方需要說明和改進,然後還

原创 【QrCode】Zxing豎屏,並解決變形問題

Step 1: Add following lines to rotate data before buildLuminanceSource(..) in decode(byte[] data, int width, int height

原创 【消息通信】Android消息驅動機制

消息驅動機制   Android擴展了線程的退出機制,在啓動線程時,可以首先在線程內部創建一個消息隊列,然後讓線程進入一個無限循環中,在這個無限循環中,線程會不斷檢查消息隊列中是否有消息。如果需要線程執行某個任務,便向線程的消息隊列中發送

原创 【動態加載】Android動態加載:簡單加載模式

初步瞭解Android動態加載 Java程序中,JVM虛擬機是通過類加載器ClassLoader加載.jar文件裏面的類的。Android也類似,不過Android用的是Dalvik/ART虛擬機,不是JVM,也不能直接加載.jar文

原创 【Service】Service理解

關於Service             1、  Service不是分離開的進程,除非其他特殊情況,它不會運行在自己的進程,而是作爲啓動運行它的進程的一部分。             2、  Service不是線程,這意味着它將在

原创 【設計模式】工廠模式是創建型模式 策略模式是行爲性模式

工廠模式是創建型模式 策略模式是行爲性模式 一個關注對象創建 一個關注行爲的封裝 

原创 【JNI】開發流程6步驟

JNI開發流程主要分爲以下6步: 1、編寫聲明瞭native方法的Java類 2、將Java源代碼編譯成class字節碼文件 3、用javah -jni命令生成.h頭文件(javah是jdk自帶的一個命令,-jni參數表示將class中

原创 【博客】Android博客

 常用工具網站  1. Android代碼查找    https://www.codota.com/       2. 開源項目解析   http://www.codekk.com/open-source-project-analysi

原创 【github】project is already on GitHub解決辦法

 今天把github中的一個repository 刪除後,想重新將project分享到github,但是Android Studio Project 依舊提示“ project is already on GitHub ”,即“該項目