Service是Android的四大組件之一,被用來執行長時間的後台任務,同樣,線程也可以實現在後台執行任務,它們的區別在哪呢?何時使用Service何時使用Thread呢?今天我也來說說我的理解和總結。首先,需要了解Service的幾個特點。(1)
上一篇文章提到了Android系統的UI線程是一種帶消息循環(Looper)機制的線程(http://www.linuxidc.com/Linux/2014-12/110161.htm),同時Android也提供了封裝有消息循環(Looper)的Ha
Android開發中偶爾會用到自定義View,一般情況下,自定義View都需要繼承View類的onMeasure方法,那麼,為什麼要繼承onMeasure()函數呢?什麼情況下要繼承onMeasure()?系統默認的onMeasure()函數行為是怎
前一篇文章主要講了自定義View為什麼要重載onMeasure()方法(見 http://www.linuxidc.com/Linux/2014-12/110164.htm),那麼,自定義ViewGroup又都有哪些方法需要重載或者實現呢 ?Andr
前面兩篇文章介紹了Android自定義View的onMeasure和onLayout原理,本文准備介紹自定義View的第三個關鍵部分,即onDraw()函數的重載。http://www.linuxidc.com/Linux/2014-12/11016
Android提供了NDK工具,用來編譯native代碼(c/c++),該工具配置好了相關的交叉編譯環境和工具鏈,只需要你簡單地編寫幾個.mk文件即可將你的c/c++代碼編譯為Android的java工程/Android手機可以識別、加載和運行的庫或
前面一篇文章簡單地介紹了Android ndk編譯的一些命令行參數(http://www.linuxidc.com/Linux/2014-12/110167.htm),一般情況下,我們都是在Android工程的jni目錄下編譯本地代碼,或許用不到那些
前面2篇文章分別介紹了Android NDK編譯的命令行參數,以及如何在任意目錄使用Android.mk來編譯本地c/c++代碼,Andriod.mk和ndk-build只不過是Android官方提供了一套封裝過的Android交叉編譯環境而已,其實
你是否想使用Python語言創建一個網頁,或者處理用戶從web表單輸入的數據?這些任務可以通過Python CGI(公用網關接口)腳本以及一個Apache web服務器實現。當用戶請求一個指定URL或者和網頁交互(比如點擊提交按鈕)的時候,CGI腳本
當提及指針時,我們通常認為它是可以用void * 指針表示的在x86_64架構上占用8字節的東西。例如, 維基百科有一篇關於x86_64的文章中這樣寫道:Pushes and pops on the stack are always in 8-byt
講解一個比較通用的錄音控件實現方法與設計技巧最近由於需要做一個錄音功能(/噓 悄悄透露一下,千萬別告訴紅薯,就是新版本的OSC客戶端噢),起初打算采用仿微信的錄音方式,最後又改成了QQ的錄音方式,之前的微信錄音控件也就白寫了[大哭]。之前有很多朋友在
在 C++ 中,你也許經常使用 new 和 delete 來動態申請和釋放內存,但你可曾想過以下問題呢?new 和 delete 是函數嗎?new [] 和 delete [] 又是什麼?什麼時候用它們?你知道 operator new 和 oper
在 C 語言中,我們不能使用 goto 語句來跳轉到另一個函數中的某個 label 處;但提供了兩個函數——setjmp 和 longjmp來完成這種類型的分支跳轉。
Linux 內核使用 task_struct 數據結構來關聯所有與進程有關的數據和結構,Linux 內核所有涉及到進程和程序的所有算法都是圍繞該數據結構建立的,是內核中最重要的數據結構之一。該數據結構在內核文件 incl
前兩天看程序,發現在某個函數中有下面這段程序:int n; //define a variable nint array[n]; //define an array with length n在我所學的C語言知識
前幾天看內核中系統調用代碼,在系統調用向量表初始化中,有下面這段代碼寫的讓我有點摸不著頭腦:const sys_call_ptr_t sys_call_table[__NR_syscall_max+1] = { /* * Smells
當程序運行的過程中異常終止或崩潰,操作系統會將程序當時的內存狀態記錄下來,保存在一個文件中,這種行為就叫做Core Dump(中文有的翻譯成“核心轉儲”)。我們可以認為 core dump 是“內存快照&rdquo
系統調用(System Call)是操作系統為在用戶態運行的進程與硬件設備(如CPU、磁盤、打印機等)進行交互提供的一組接口。當用戶進程需要發生系統調用時,CPU 通過軟中斷切換到內核態開始執行內核系統調用函數。下面介紹Linux 下三種發生系統調用
我們習慣在SI(Source Insight)中閱讀Linux內核,SI會建立符號表數據庫,能非常方便地跳轉到變量、宏、函數等的定義處。但在處理系統調用的函數時,卻會遇到一些麻煩:我們知道系統調用函數名的特點是sys_××&t