原创 Android框架源碼(API 26之前) 之啓動Activity流程簡單描述

啓動Activity有情況,從系統應用界面點擊進入和在應用內部啓動新Actvity 前者調用Launcher類的startActivitySafely方法,Launcher類繼承Activity類,startActivitySafely方

原创 Kotlin基礎——類的構造函數的幾種寫法

本文目的 簡單整理和羅列Kotlin語法中對類的構造函數的若干種寫法,比官方文檔更加生動具體的說明,並以Java作爲對比參考,幫助想從Java向Kotlin轉型的初學者更加通俗易懂的瞭解Kotlin類的構造函數的語法。 構造函數 Kotl

原创 《操作系統精髓與設計原理》知識梳理 之進程篇

前言        在我看來,進程之於處理器猶如細胞之於心臟,進程好比體內的細胞,而操作系統那就如整個生理系統。因此,進程對於操作系統來說至關重要。 Ⅰ. 進程 一組元素組成的實體,進程的兩個基本元素是程序代碼(program code,

原创 學習Flutter踩過的坑——創建項目後找不到lib/main.dart

之前自學Flutter,按照官網的文檔說明先模仿寫一個Hello world。可是按照官網說明建完了項目竟然卡在了第1步上。 官方文檔說明如下: 問題來了,在我的項目目錄下面根本找不到lib/main.dart這個文件,我用contro

原创 Java虛擬機——從Java源碼到字節碼到底經歷了什麼

javac編譯器將Java源碼編譯成字節碼主要會經歷4個步驟: 詞法解析 ➙ 語法解析 ➙ 語義分析 ➙ 生成字節碼 詞法解析: 詞法解析要做的事情就是將Java源碼中的關鍵字和標識符等內容轉換爲符合Java語法規範的Token序列,

原创 Java基礎——方法的異常說明throws關鍵字在類的繼承中的限制規則

定義 引用《Java 編程思想》中文版第四版對throws的說明: “異常說明屬於方法聲明的一部分,緊跟在形式參數列表之後,使用了附加的關鍵字throws,後面接一個所有潛在異常類型的列表。” 問題一 那麼既然對“方法潛在異常類型”聲

原创 算法題目——找出兩個字符串的最長公共子串

int findMaxSubstringLen(String input_1, String input_2){ //比較兩個字符串長度,取小的長度 int minSize = input_1.le

原创 Java虛擬機——初探字節碼class文件內部結構

之前介紹過Java編譯器如何將Java源碼編譯成字節碼class文件。 Java虛擬機——從Java源碼到字節碼到底經歷了什麼 那麼最終的到的字節碼文件是怎樣的一個文件,內部結構又是如何?此文對字節碼class文件的內部結構進行初步探索,

原创 Java基礎——跟蹤啓動Thread的兩種方式

先看Java開啓Thread的兩種寫法 1. 繼承Thread類,重寫run方法。 class MyThread extends Thread{ @Override public void r

原创 Java進階——JNI原理簡介

JNI (Java Native Interface) Java源碼層 —— JNI層 —— Native層 JNI(Java Native Interface)是Jave本地接口,是Java與其它語言之間相互調用的橋樑。   主要作

原创 Java虛擬機——棧幀

基本概念 棧幀(Stack Frame)存儲於Java棧中,棧幀中負責存儲局部變量表、操作數棧、動態鏈接和方法返回值等信息。 棧幀是一種用於支持JVM調用/執行程序方法的數據結構,每一個方法從開始調用到執行結束返回的過程對應着Java棧中

原创 一個可以自動換行來適應行寬的標籤列表控件——教你如何使用Android自定義ViewGroup的onMeasure和onLayout

前言 添加標籤,但是標籤的字數不固定,所以造成一個問題,如果每行的標籤的個數固定,可能某些行的標籤會溢出屏幕。那麼自適應行寬,能自動換行的標籤容器控件就可以完美解決此類問題。因此,這篇文章向大家介紹如何通過自定義View實現此類可能會經常

原创 Android源碼閱讀方式——教你如何找到ActivityManagerService

Android源碼閱讀方式可以在線閱讀,當然也可以下載到本地閱讀。 在線閱讀 Android源碼在線閱讀的網站主流的就是http://androidxref.com,另外還有http://grepcode.com,http://www.a