廢話不說,立馬動手。先準備一份測試代碼:#include <stdio.h>void funcUp(void){ printf("Hello world 1!\n"); return;}int main(int argc, char* argv[]){ funcUp(); funcDown(); return 0;}int funcDown(void){ printf("Hello world 2!\n"); return
xdelta 是製作二進位檔案差分的好工具。有時候,我們的APK安裝包特別大,在release時,如果每次都傳一下很大的包的話,效率肯定不行,下面我這裡推薦一個工具,來產生二進位的差分檔案,那就是——xdelta。在Ubuntu場合下:1,安裝 $sudo apt-get install xdelta2,製作差分檔案$ xdelta delta (Sorce file) (Destination file) test.xdelta3,合并差分檔案$ xdelta patch
張三:假如我們自己開發了一個類庫,怎麼做一個方便閱讀的文檔呢?李四:一個方法一個方法地寫唄,就像寫Excel文檔一下。張三:啊,你out了,這多慢呀。為什麼不玩玩doxygen工具,它能幫你產生文檔?李四:這麼爽,什麼東東,給說講講。1. Doxygen,
有時候,當ListView中的每一個item是自訂的View時,有可能會導致ListView的OnItemClickListener的listener無法調用,請看如下情況:如果你的自訂ListViewItem中有Button或者Checkable的子類控制項的話,那麼預設focus是交給了子控制項,而 ListView的Item能被選中的基礎是它能擷取Focus,也就是說我們可以通過將ListView中Item中包含的所有控制項的
1. 前者開啟一個新的,後者當前有session的話,則是使用當前的session,沒有的話則建立一個新的;2. 如果使用前者獲得一個session的話,需要手動關閉session,使用後者,當事務提交,session會自動關閉,如果再關閉session則會報如下異常:Session has already closed;3.
先千篇一律的上個圖:[28:31] cond: 指令執行條件編碼[26:27] : 保留[25] X: 決定採用“立即數定址(置1)”還是“寄存器定址(置0)”[21:24] opcode: 操作符(如MOV、LDR等)所對應的編碼[20] S: 指令中S標誌的體現,帶S,該bit為0,不帶S,為1[16:19] Rn: 置零。[12:15] Rd: 目標寄存器的編碼。在ARM9中每種模式有16個通用寄存器[0:11] shifter-operand:
因為任何一條指令與它需要訪問的模組內部資料之間的相對位置是固定的,只需要相對於當前指令加上固定的位移量就可以訪問模組內部資料了。現有C代碼如下: struct binder_state *bs; void *svcmgr = BINDER_SERVICE_MANAGER; bs = binder_open(128*1024); if (binder_become_context_manager(bs)) { LOGE("cannot become
今天搗鼓了幾個小時,想在虛擬機器安裝的Ubuntu上網,參考網上很多設定方法都沒成功,最後問題解決,現做下筆記,以備以後查看。主機是通過撥接的,虛擬機器ubuntu上網的設定步驟如下:1.配置虛擬機器的網卡為NAT模式,設定如下2.配置虛擬網卡VMnet8,設定為自動擷取IP地址和DNS伺服器位址,如下3.開啟windows系統的服務裡的VMDHCP和WMNet服務(就因為疏忽這一點,折騰死我了),如下這裡只介紹一種最簡單的上網方法,若需要其他的上網方式,可以參考這篇文章http://wangc
原則,故名思議則是本質的意思。所謂擒賊先擒王,研究設計模式自然要先瞭解設計原則, 所有的模式都是在這些原則的基礎之上發展起來的,有的是側重一個,有的是多個都有所涉及。看完設計模式之後,我感覺到每個模式都有這些原則的影子,還滲透 著物件導向的三大屬性,也覺得這些原則也都有相通之處,,正是有了他們才使我們由代碼工人轉為藝術家。下面我來點評一下六大原則,望各位拍磚:1、單一職責原則(Single Responsibility Principle,簡稱SRP)
最近因為項目的需要研究了一下NDK的使用,在測試NDK的時候也遇到一些問題,趁熱打鐵把這塊知識點整理回顧一下。先說說JNI和NDK的區別:NDK (Native Development Kit) 是google提供個一套工具,包括:從C / C++產生原生程式碼程式庫所需要的工具和build files。將一致的原生庫嵌入可以在Android裝置上部署的應用程式套件組合檔案(application packages files
1,採用良好的設計思路在設計過程中,如果能按照下面的方式來進行設計,會讓這個API生命更長久面向用例的設計,收集使用者建議,把自己類比成使用者,保證API設計的易用和合理保證後續的需求可以通過擴充的形式完成第一版做盡量少的內容,由於新需求可以通過擴充的形式完成,因此盡量少做事情是抑制API設計錯誤的一個有效方案對外提供清晰的API和文檔規範,避免使用者錯誤的使用API,尤其是避免API(見第一節)靠後層級的API被使用者知曉與誤用除此之外,下面還列出了一些具體的設計方法:方法優於屬性Factor
參考:http://blog.csdn.net/lwbeyond/article/details/6202256http://blog.csdn.net/feiyond/article/details/1807068一個空類產生的類成員函數有:1. 預設建構函式2. 解構函式3. 複製建構函式4. 賦值函數在C++中,下面三種對象需要拷貝的情況。因此,拷貝建構函式將會被調用。 1. 一個對象以值傳遞的方式傳入函數體 2. 一個對象以值傳遞的方式從函數返回 3.
本文主要是從《Java編程思想》上面總結出來的。方法論在你經曆整個開發過程時,最重要的一點是:不要迷失。這很容易做到。大多數分析與設計方法論都試圖去解決最大型的問題。但是請記住,多數工程並不屬於這一範疇,我們通常只需要採取某種方法論所推薦的一個相對較小的子集就可以得到成功的分析與設計。但是某些類型的處理過程,無論它們怎樣小或者怎樣受限制,通常也都應該採用某種比直接開始編碼要好得多的方式。這很容易使人迷失,從而陷入"分析癱瘓",使你感覺無法取得進展,因為你無法確定當前階段的每一個細節。記住,無論你
1、常用熱鍵 * 開啟/關閉IME:左ctrl+空格/左ctrl+左shift * 快速中英文切換:左ctrl * 切換IME:alt+1-->五筆 alt+2-->拼音 alt+3-->區位,或用左ctrl+左shift進行迴圈切換 * 切換全/半形:左shuft+空格 * 候選字/詞翻頁:,./-= * 重新讀入設定:左ctrl+5 2、五筆輸入 fcitx的五筆功能如下: * 標準的五筆86輸入功能 * 自訂片語:在五筆狀態下,按左ctrl+
建構函式是特殊的成員函數,只要建立類類型的新對象,都要執行建構函式。建構函式的工作是保證每個對象的資料成員具有合適的初始值。建構函式的名字和類的名字相同,並且不能指定傳回型別,像其他任何函數一樣,它們可以沒有形參,也可以定義多個形參。1.1 建構函式可以被重載1.2 實參決定使用哪個建構函式1.3 建構函式自動執行只要建立該類型的一個對象,編譯器就運行一個建構函式。1.4 建構函式不能聲明為const建立類類型的const對象時,運行一個普通建構函式來初始化該const對象。2.1
我們在設計UI時,通常是有一些步驟與原則,下面列出了一些常用的,可能也不是很準確,希望拋磚引玉,讓大家對UI設計有一個思路,這裡一定要有一個意識,在拿到一個UI設計圖的時候,不要馬上就想到要怎麼怎麼實現,而是需要細心分析與設計。1,明確劃分與UI相關和與UI無關的部分根據UI的設計圖,我們首先要把介面展現的資料先抽出去,只看UI的表現。也就是說,把UI相關的部分抽出來。比如一個介面可能需要分幾部分組成,每一部分大概怎麼設計等。2,劃分螢幕大小,明確出跳轉關係要考慮到你的APP所對應的螢幕大小及D
我們在寫文檔過程中,多多少少都會畫一些圖來說明程式的功能,這篇文章就來說明一些常用的"圖"怎麼畫。1,畫圖工具常用的有這麼幾種Visio:這是很常用的,基本上的圖都可以用這個來畫。StarUML:這個是一個專用來畫UML的圖,效果也還可以,我用得比較少。畫圖板:如果你用畫圖板也一樣能畫出效果不錯的圖,神人也,值得膜拜,不過,這個東西很低效,不推薦。2,類圖關於類圖的詳細資料,請點擊這裡:https://www.ibm.com/developerworks/cn/rational/rational
ADR的定義為:小範圍的地址讀取偽指令,ADR指令將基於PC相對位移的地址值讀取到寄存器中,在編譯來源程式時ADR偽指令被編譯器 替換成一條合適的指令。通常,編譯器用一條ADD指令或SUB指令來實現該ADR偽指令的功能,若不能用一條指令實現,剛產生錯誤。 在如上的定義中,有兩個關鍵資訊:⑴將基於PC相對位移的地址值讀取到寄存器中;⑵被編譯器替換成一條合適的指令。ADR指令只能將地址值讀取到寄存器中,而不能是其它的立即數,並用只能用一條指令。
參考:http://source.android.com/source/initializing.html編譯Android源碼的時候make有幾十次了吧,一度還中斷了幾天不想再去調錯誤,當時覺得各種莫名其妙的錯誤,但是當編譯通過之後,發現其實也沒那麼麻煩,關鍵要把一些環境和庫配置好。下面整理下編譯Android2.3.3源碼的整個流程,等我下次重新編譯一次再附圖。作業系統:Ubuntu12.04
虛擬硬碟空間經常不夠用,除了定期清理之外,有時候不得不新添加一塊硬碟,擴充儲存空間1、關閉虛擬機器,建立一塊硬碟。2 root登陸 ,fdisk -l 查看新添加的硬碟 一般是/dev/sdb ,如果建立了多個,就會出現/dev/sdc3 df -h 並沒發現新硬碟資訊,說明還不能用4 sudo mkfs.ext4 /dev/sdb 格式化虛擬硬碟5 建立一個目錄(不固定) mkdir -p /media/mydisk 掛載建立的磁碟到該目錄下 mount /dev/sdb