原创 Android 內核 - 03 創建應用窗口 和 子窗口

Android 的窗口分三類,應用窗口,子窗口,系統窗口,這裏整理的是應用窗口和子窗口的創建。 應用窗口 每個Activity會對應着一個窗口。 應用窗口的創建,相當於是 Activity,Window(PhoneWindow), Wi

原创 Android 內核 - 04 Framework 的啓動

從Linux的角度看,Android只是Linux中的一個應用程序而已。 啓動Android便是啓動一系列的服務和應用模塊。從這個角度去理解Android的啓動過程會使問題變得簡單點。 先啓動一個原始進程,加載必要的資源,建立原型,並開

原创 04 VoLTE - Signaling - IMS Client Registration

IMS Client Registration過程主要分爲兩個部分 發現 P-CSCFIMS 註冊過程 P-CSCF Discovery Overview P-CSCF是通向IMS的網關,它是UE的代理。 P-CSCF的信息:

原创 07 VoLTE - Signaling - IMS Client Deregistration

觸發IMS Deregistration的情形 UE觸發 UE power offUE LTE RAT is disabled 網絡觸發 網絡將UE從EPC中去附着 Service 觸發 LTE/IMS註冊超時IMS註冊失敗達

原创 06 VoLTE - Signaling - Call Release and Error Handling

VoLTE Call 的釋放過程,以及出錯時的處理方式。出錯時有的情況是可以恢復的,但有時只能讓 VoLTE Call 結束。 VoLTE Call Release 在VoLTE Call的釋放過程中, MO UE 和MT UE 都

原创 編程之美 - 浮點數的精確表示

問題描述: 如何將浮點數(小數)轉換爲分數的形式,這樣可以更精確的表達出浮點數的值。 問題分析: 小數可以分爲兩種,有限小數和無限循環小數。 有限小數的處理相對簡單: 只要把它乘以10的N次方,轉換爲整數,再和10的N次方都除以它們的

原创 編程之美 - 計算字符串相似度

問題描述:有兩個不同的字符串,通過使用一套操作方法可以把兩個字符串變成一樣的。 例如: 1)  "a" 和 "b"  ==>  把a變成b,或把b變成a  變化了一次 2)  "abc" 和 "ade"  ==>  把bc變成de,或把

原创 編程之美 - 字符串移位包含

問題描述: 兩個字符串s1, s2,將s1循環位移,判斷s2是否被包含在其中。 例如:s1 = "ABCD"  s2= "CDA"  將s1循環位移後得到BCDA,s2被包含在s1循環位移後的字符串中。 思路 1: 將s1移位一次,然後

原创 編程之美 - 尋找合適的數字

問題描述: 給一個整數N,求一個整數M,使M*N 的十進制結果中只有 1 和 0。 問題分析: 問題從結果入手,十進制表示只有 1 和 0,這個數字的集合有規律,例如: 1,10,11,100,101,110,111..... 10k次

原创 編程之美 - 滿足條件的兩個數字及擴展問題

問題描述: 對應函數 find_two 快速找出數組中的兩個數字,讓這兩個數字之和等於給定的數字。 想法: 如果把任意兩個數字組合進行嘗試的話,運算量是N*N不適合。 先將數組進行排序,然後從兩頭分別取數字進行組合,如果和大於目標數字則

原创 SIP Call Flow - Registration

Session Initiation Protocol (SIP) registration 註冊的過程是將 IP 地址和當前用戶的公共用戶ID(Public user ID:SIP URI  (uniform resource iden

原创 編程之美 - 數組最長子序列

問題描述: 求一個一維數組的最長遞增子序列,時間複雜度儘可能小。 例如:數組 1, -1,2,-3,4,-5,6,-7它的最長遞增子序列是 1,2,4,6。 思路: 創建一個數組,用於記錄到它爲止遞增元素的最大個數。 從目標數組的第一

原创 編程之美 - 重建二叉樹

問題描述: 給出二叉樹先序遍歷和中序遍歷的結果,根據結果重建二叉樹。 舉例: 例如二叉樹 先序遍歷結果 爲 abdcef  中序遍歷結果爲 dbaecf,現根據結果重構二叉樹。 思路: 關鍵需要找到二叉樹每一層的根節點和子樹的

原创 編程之美 - 數組分割

問題: 有一個沒有排序,有2N個元素的數組,要求把這個數組分爲兩部分,分別含有N個元素,並使兩個子數組的和最接近。 這裏的程序主要是計算這個和的值。 比如數組 {1, 10, 100, 1000},計算後符合的分法是 {1, 1000

原创 編程之美 - 數組循環移位

問題描述: 將一個數組向右循環移位 k 位,要求只使用兩個參數,時間複雜度爲 O(N)。 思路 1: 採用蛙跳的方式,用當前的元素 i,替換第i+k個元素,這樣逐一替換N次後,數組被移位完成。 當然這時要區分能兩種情況,N能整除k 和