Time of Update: 2018-12-04
在 Android Emulator 裡面用 insmod 安裝 LKM 時,會報告錯誤,例如:# insmod hello.koinsmod: init_module 'hello.ko' failed (Function not implemented)這是因為 Android SDK 裡面內建的 Emulator 所用的 kernel 關閉了載入 LKM 的功能。要在 Emulator 裡面開發和調試 LKM,必須自己重新編譯 kernel. 編譯方法可以參考
Time of Update: 2018-12-04
網上說的方法是修改/system/framework/framework.odex檔案,找9a13040b,改為9a130408。方法是沒錯,不過原理沒說清楚。其實問題是出在 framework/base/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java:public static SubmitPdu getSubmitPdu(String scAddress, String
Time of Update: 2018-12-04
Android 預設沒有 tcpdump,從網上下一個其它人 port 的版本就可以了,這個很容易 google 到,我就不再贅述了。也可以自己從 http://www.tcpdump.org 下載源碼編譯。NDK r5 之後直接用 toolchain 編譯就行。 如果我們用 tcpdump 來調試 http 程式,可以這麼寫: tcpdump -p -nnn -vvv -s 0 -w /sdcard/1.pcap port 80 and tcp -p 是不開混雜模式,不過如果是用
Time of Update: 2018-12-04
Android 的 monkey test 工具提供了 -f scriptfile 參數,可以指定 test 指令碼,然而翻遍了 Android 的網站也沒有找到這個指令碼的文檔,最終只在 monkey 的源碼 MonkeySourceScript.java 中找到了一小段注釋,裡面給了一個不到 10 行例子:/** * monkey event queue. It takes a script to produce events * * sample script format: *
Time of Update: 2018-12-04
http://justanapplication.wordpress.com/2009/08/22/a-standalone-android-runtime-application-installation/ It turns out that an application can be installed, such that it cansubsequently be run, simply by placing the package containing it in the data
Time of Update: 2018-12-04
編譯1. 下載安裝 Android NDK,不必贅述。假定我們安裝到了 /Developer/android-ndk-r4b/.2. 在工作目錄下建立一個 jni 目錄。如果要使用 NDK 內建的 Android.mk,必須叫做這個名字,否則 make 的時候會找不到檔案,錯誤提示可能類似下面:Android NDK: Could not find application project directory !Android NDK: Please define the NDK_PROJECT_
Time of Update: 2018-12-04
Android 提供DisplayMetircs 類可以很方便的擷取解析度。Andorid.util 包下的DisplayMetrics 類提供了一種關於顯示的通用資訊,如顯示大小,解析度和字型。為了擷取DisplayMetrics 成員,首先初始化一個對象如下:DisplayMetricsmetrics = newDisplayMetrics();WindowManager WM =
Time of Update: 2018-12-04
調用 /system/bin/am. 用法:usage: am [subcommand] [options] start an Activity: am start [-D] [-W] <INTENT> -D: enable debugging -W: wait for launch to complete start a Service: am startservice <INTENT> send a broadcast
Time of Update: 2018-12-04
對於自學NDK開發來說,成功編譯並運行了hello-jni應該還是有一點點興奮的,在此記一筆.(Ubuntu環境)NDK開發環境的搭建是停容易的,不過還是有幾天提示:1. Eclipse 的C/C++環境的搭建中,CDT外掛程式的安轉 最好用手動的方式,(參看我的另一篇筆記 Eclipse CDT安轉) help-->Install New Sofeware
Time of Update: 2018-12-04
調試1. 首先把要調試的程式上傳到模擬器中。假定我們用 adb push hello /data/hello 將程式傳到了模擬器的 /data 目錄。注意確認 hello 有可執行許可權。2. 在模擬器上運行 gdbserver :<port> hello,啟動調試。其中 port 是 gdbserver 在手機上監聽的連接埠號碼,注意和後面我們用 gdb 串連的連接埠可能不是同一個。運行結果可能是:# gdbserver :6789 helloProcess hello
Time of Update: 2018-12-04
抄書《Android應用開發揭秘》 誤解一:NDK發布之前,Android不支援進行C開發在Google中搜尋“NDK”,很多“Android終於可以使用C++開發”之類的標題,這是一種對Android平台編程方式的誤解。其實,Android平台從誕生起,就已經支援C、C++開發。眾所周知,Android的SDK基於Java實現,這意味著基於AndroidSDK進行開發的第三方應用都必須使用Java語言。但這並不等同於“第三方應用只能使用Java”。在AndroidSDK首次發布時,Google
Time of Update: 2018-12-04
某應用,之前在各版本的 Android 系統上運行良好,最近測試部門在 Android 4.0 相容性測試中,發現該應用在通知欄顯示表徵圖時,表徵圖顯示不全。經檢查發現,建立通知欄表徵圖時:Notification nf = new
Time of Update: 2018-12-04
http://blog.csdn.net/quaful/archive/2010/12/24/6096951.aspx 在 Java 裡面,我們可以把一些類放到 .jar 檔案裡面,然後用 ClassLoader 動態載入。例如: view plaincopy to clipboardprint?URLClassLoader ucl = URLClassLoader.newInstance(new URL[] {new URL("file:/sdcard/files/test.jar")});
Time of Update: 2018-12-04
http://tech.sina.com.cn/s/2010-01-14/19281215405.shtml開機過程中無線模組的初始化過程;如果sim卡鎖開啟,或者pin被鎖住的時候,會要求輸入pin或者puk,但是這個解鎖動作必須在系統初始化完成以後才能進行。(圖形系統都還沒有初始化怎麼輸入密碼阿?)當系統初始化完成以後會調用 wm.systemReady()來通知大家。這時候該做什麼就做什麼。 開機過程中無線模組的初始化過程: rild 調用參考實現 Reference-ril.c
Time of Update: 2018-12-04
http://doc.chinaunix.net/linux/201001/352044.shtml詳解 Android 的 Activity 組件Activity 的生命週期和 J2ME 的 MIDlet 一樣,在 android 中,Activity 的生命週期交給系統統一管理。與 MIDlet 不同的是安裝在 android 中的所有的 Activity 都是平等的。Activity 的狀態及狀態間的轉換在 android 中,Activity
Time of Update: 2018-12-04
Android中使用Matrix實現圖片的縮放和旋轉,通過本文學習,你將學會如何通過Matrix操作映像。Matrix的操作,總共分為translate(平移),rotate(旋轉),scale(縮放)和skew(傾斜)四種,每一種變換在Android的API裡都提供了set, post和pre三種操作方式,除了translate,其他三種操作都可以指定中心點。 set是直接設定Matrix的值,每次set一次,整個Matrix的數組都會變掉。
Time of Update: 2018-12-04
理解Android系統的處理序間通訊原理(一)----RPC中的代理模式Android系統中的處理序間通訊是通過一個輕量級的RPC(RemoteProcedure Call遠程進程調用)和AIDL(Android Interface
Time of Update: 2018-12-04
前幾天做一個back健的返回控制時,發現 一個 void 的return必須寫。否則控制就會失效,會做系統預設的事。在此記上一筆。重載Back鍵處理函數: @Override public void onBackPressed() { // TODO Auto-generated method stub /* 自訂的處理條件 tag */
Time of Update: 2018-12-04
Android之view重繪http://qaohao.javaeye.com/blog/478314 關鍵字: android android中實現view的更新有兩組方法,一組是invalidate,另一組是postInvalidate,其中前者是在UI線程自身中使用,而後者在非UI線程中使用。以下是我在android文檔中找到的說明,引用public void invalidate()Invalidate the whole view. If
Time of Update: 2018-12-04
Android與PC的Socket(TCP/IP)通訊(by USB) 拒絕串連的時間:2010-12-30 01:20來源:CSDN社區作者:joy_liut點擊:情形一:Android_Server:final int SERVER_PORT = 12345; private void startServer() { try { Log.e("s: connecting...", "");