如果使用的是 Eclipse 作為 IDE 的話,用 ADT 所提供的 logcat 顯示界面可以直接做到你的需求。 在編輯的位置輸入 app:your.package.name 便可以自動過濾包名為 your.package.name 的軟體輸出信息啦,如果在編寫軟體時注意了 Log.X 的使用,通過旁邊的下拉菜單還可以根據日誌的等級進行再一次進行的過濾。 TODO: 1. 打開 LogCat 2. 輸入需要的包名,如圖上的 com.android.phone 3. 根據需要選擇日誌等級,當然,如果沒有細致的 Log.X 輸出的話,推薦使用 verbose(詳細) 4. 查看過濾後的結果 5. 待解決問題後,記得將 app:com.android.phone 刪除,否則過濾會持續生效 後話:如果不嫌麻煩,在左邊的 Saved Filters 字樣旁邊有一個加號,通過它可以手動生成一個可以保存的過濾器,可涉及的過濾范圍諸如:日誌等級、進程ID、包名等。
『貳』 android手機日誌怎麼查看
以小米手機為例,其他機型操作方法大致相同:
1.首先在手機桌面上找到【文件管理】,進入手機的文件管理頁面。
『叄』 android crash日誌怎麼分析
原始的方法都比較麻煩了,現在有很多的崩潰捕捉工具,可以都快速的定位崩潰堆棧詳情,同時日誌也會一並上報的,現在比較新的工具是Bugout,一些別工具還有bugly、bugtags和bugclos,你可以篩選一下,哪個適合你。
『肆』 如何獲取 android 的系統日誌 logcat
直接在命令行重定向即可將logcat中輸出的日誌保存到文件中。
android開發中如果如果要將logcat中輸出信息的保存到文件中,按以下步驟:
1. 示例1: adb logcat > /sdcard/mylogcat.txt,表示將logcat的輸出重定向到/sdcard/mylogcat.txt文件中。
2. 示例2: db logcat > D:/Temp/1.txt(1.txt必須存在,才能寫入logcat內容),表示將logcat輸出的日誌保存到電腦D盤Temp目錄下的1.txt中。
『伍』 如何在android源代碼中列印出日誌
1:在編譯so文件的c或cpp文件之前中加入以下代碼,就可以在android中的log顯示日誌內容
#include
#define LOG_TAG "show infomation"
#define LOGW(a ) __android_log_write(ANDROID_LOG_WARN,LOG_TAG,a)
2:就可以在c或cpp中加入LOWG(str) 就可以在android中的log中顯示列印的內容
3.這樣寫完以後,如果直接編譯,就會報 __android_log_write 方法undefined.
怎麼回事呢?關鍵是在設置編譯選項上面。
在Android.mk文件里,可以指定一個LOCAL_LDLIBS的參數。如果不指定,那麼編譯的時候,只會引入默認的幾個重要的lib,比如libc之類的。
如果要用log,那就要把 liblog給引進來。
網上很多的寫法是 LOCAL_LDLIBS := -llog ,這在build static lib的時候沒什麼問題。如果是build shared lib,就會報個 cannot find -llog的錯誤。意思是找不到liblog.so這個庫文件。
因此需要改成 LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog 才可以正常編譯。
其中-L參數是指定了搜索lib的路徑。
下面是一個android.mk的內容的例子:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := TestNdkNetwork
LOCAL_SRC_FILES := HttpConnection.cpp
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
include $(BUILD_SHARED_LIBRARY)
『陸』 如何獲取 android 的系統日誌
您好,很高興為您解答。讀取日誌需要的許可權
<uses-permission android:name="android.permission.READ_LOGS"/>
主要代碼
package mt.fzgh;import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.ArrayList;public class MyLog{ public static class MLog //靜態類 { public static void getLog() { System.out.println("--------func start--------"); // 方法啟動 try { ArrayList<String> cmdLine=new ArrayList<String>(); //設置命令 logcat -d 讀取日誌 cmdLine.add("logcat"); cmdLine.add("-d"); ArrayList<String> clearLog=new ArrayList<String>(); //設置命令 logcat -c 清除日誌 clearLog.add("logcat"); clearLog.add("-c"); Process process=Runtime.getRuntime().exec(cmdLine.toArray(new String[cmdLine.size()])); //捕獲日誌 BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(process.getInputStream())); //將捕獲內容轉換為BufferedReader // Runtime.runFinalizersOnExit(true); String str=null; while((str=bufferedReader.readLine())!=null) //開始讀取日誌,每次讀取一行 { Runtime.getRuntime().exec(clearLog.toArray(new String[clearLog.size()])); //清理日誌....這里至關重要,不清理的話,任何操作都將產生新的日誌,代碼進入死循環,直到bufferreader滿 System.out.println(str); //輸出,在logcat中查看效果,也可以是其他操作,比如發送給伺服器.. } if(str==null) { System.out.println("-- is null --"); } } catch(Exception e) { e.printStackTrace(); } System.out.println("--------func end--------"); } }}
這里比較令人糾結的一點就是日誌的清理 logcat -c 如果不加入 清理 在buffer滿為止,代碼自身能夠迭代6~7次....
附帶一份logcat的 命令...不過好像 過濾器 指令有問題....慎用
選項 說明
-s 默認設置過濾器
- f 文件 輸出到日誌文件
-c 清除日誌
-d 獲取日誌
-g 獲取日誌的大小
- v 格式 設置日誌(見下面的格式列印格式)
- v 格式 例
brief W/tag ( 876): message
process W( 876) message (tag)
tag W/tag : message
thread W( 876:0x37c) message
raw message
time 09-08 05:40:26.729 W/tag ( 876): message
threadtime 09-08 05:40:26.729 876 892 W tag : message
long [09-08 05:40:26.729 876:0x37c W/tag ] message
如若滿意,請點擊右側【採納答案】,如若還有問題,請點擊【追問】希望我的回答對您有所幫助,望採納! ~ O(∩_∩)O~
『柒』 android的日誌Logger和Log比較,哪個好
建議使用Log,這是android專門用來開發列印日誌使用的。輸出的日誌可以在Logcat中查看。
Android開發中,所的有輸出都在logcat中 包含System.out輸出和printStackTrace()輸出都在Logcat中,Android開發,建議使用android提供的Log工具類來列印信息。
找到Logcat視圖的方式:
Eclipse 點擊 Window
Show View會出來一個對話框
點擊Ok按鈕時,會在控制台窗口出現LogCat視圖
android.util.Log常用的方法有以下5個:Log.v()Log.d()Log.i()Log.w()以及Log.e()。根據首字母對應VERBOSE,DEBUG,INFO,WARN,ERROR。
1、Log.v 的調試顏色為黑色的,任何消息都會輸出,這里的v代表verbose啰嗦的意思,平時使用就是Log.v("","");
2、Log.d的輸出顏色是藍色的,僅輸出debug調試的意思,但他會輸出上層的信息,過濾起來可以通過DDMS的Logcat標簽來選擇.
3、Log.i的輸出為綠色,一般提示性的消息information,它不會輸出Log.v和Log.d的信息,但會顯示i、w和e的信息
4、Log.w的意思為橙色,可以看作為warning警告,一般需要我們注意優化Android代碼,同時選擇它後還會輸出Log.e的信息。
5、Log.e為紅色,可以想到error錯誤,這里僅顯示紅色的錯誤信息,這些錯誤就需要認真的分析,查看棧的信息了。
『捌』 android 應用怎麼讀取內核日誌
本來以為就沒有辦法在應用程序這一層改系統時間了,後來在網上搜了好久,知道這個目的還是可以達到的。 第一個方法簡單點,不過需要在Android系統源碼的環境下用make來編譯: 1. 在應用程序的AndroidManifest.xml中的manifest節點中加入 android:sharedUserId="android.uid.system"這個屬性。 2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform這一行 3. 使用mm命令來編譯,生成的apk就有修改系統時間的許可權了。 第二個辦法麻煩點,不過不用開虛擬機跑到源碼環境下用make來編譯: 1. 同上,加入android:sharedUserId="android.uid.system"這個屬性。 2. 使用eclipse編譯出apk文件,但是這個apk文件是不能用的。 3. 用壓縮軟體打開apk文件,刪掉META-INF目錄下的CERT.SF和CERT.RSA兩個文件。 4. 使用目標系統的platform密鑰來重新給apk文件簽名。這步比較麻煩, 首先找到密鑰文件,在我的Android源碼目錄中的位置 是"build argetproctsecurity",下面的platform.pk8和platform.x509.pem 兩個文件。 然後用Android提供的Signapk工具來簽名,signapk的源代碼是 在"build oolssignapk"下, 用法為"signapk platform.x509.pem platform.pk8 input.apk output.apk", 文件名最好使用絕對路徑防止找不到,也可以修改源代碼直接使用。 這樣最後得到的apk和第一個方法是一樣的。 最後解釋一下原理,首先加入android:sharedUserId="android.uid.system"這個屬性。通過Shared User id,擁有同一個User id的多個APK可以配置成運行在同一個進程中。那麼把程序的UID配成android.uid.system,也就是要讓程序運行在系統進程中,這樣就有許可權來修改系統時間了。 只是加入UID還不夠,如果這時候安裝APK的話發現無法安裝,提示簽名不符,原因是程序想要運行在系統進程中還要有目標系統的platform key,就是上面第二個方法提到的platform.pk8和platform.x509.pem兩個文件。用這兩個key簽名後apk才真正可以放入系統進程中。第一個方法中加入LOCAL_CERTIFICATE := platform其實就是用這兩個key來簽名。這也有一個問題,就是這樣生成的程序只有在原始的Android系統或者是自己編譯的系統中才可以用,因為這樣的系統才可以拿到 platform.pk8和platform.x509.pem兩個文件。要是別家公司做的Android上連安裝都安裝不了。試試原始的Android 中的key來簽名,程序在模擬器上運行OK,不過放到G3上安裝直接提示"Package ... has no signatures that match those in shared user android.uid.system",這樣也是保護了系統的安全。
『玖』 android 日誌文件用什麼打開
編程調試是每一個編程人員必備的編程技巧,而在編程調試中,我們最最常用也是最最有效的的調試方法之一就是輸出信息,有過java編程經驗的同學應該知道,在java再發的過程中,我們經常會通過在程序可能出現問題的位置處通過
System.out.println("aaaaaaaaaaaaaaaaaaaaaaa");
輸出調試信息來調試程序,通過console控制台,我們就可以輕易得知我們的程序到目前位置處是否運行正常
然而,當我們轉戰android時,我們發現,通過單純的System.out我們已經沒有辦法在console獲取信息,為了獲取必要的調試信息,我們要用到android的LogCat工具
下面我們來看一下android開發中如何查看app運行日誌:
1.在android開發中,我們依然可以使用System.out來經行調試信息的輸出,只是這時的調試信息不再console中,而是在LogCat中;
2.我們也可以使用andorid工具包中的Log類來經行必要調試信息的輸出。
官方解釋:Generally, use the Log.v() Log.d() Log.i() Log.w() and Log.e() methods.
The order in terms of verbosity, from least to most is ERROR, WARN, INFO,
DEBUG, VERBOSE. Verbose should never be compiled into an application except
ring development. Debug logs are compiled in but stripped at runtime. Error,
warning and info logs are always kept.
當我們要輸出信息時,直接使用Log中提供的Log.v() Log.d() Log.i() Log.w() and Log.e()即可
@Override
protected void onResume() {
Log.i(Tag, "first activity--------onResume()");
System.out.println("first activity--------onResume()");
super.onResume();
}
@Override
protected void onStart() {
Log.i(Tag, "first activity--------onStart()");
System.out.println("first activity--------onStart()");
super.onStart();
}
@Override
protected void onStop() {
Log.i(Tag, "first activity--------onStop()");
System.out.println("first activity--------onStop()");
super.onStop();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(Tag, "first activity--------onCreate()");
System.out.println("first activity--------onCreate()");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
我們已經把調試信息輸出,那麼我們應該如何更好的查看這些信息呢:
首先我們要打開eclipse的LogCat窗口,當我們運行一個app時,我們可以看到這個窗口一次會輸出很多信息,大多數信息對於我們來說是不需要的, 為了更快的得到我們期望的信息,這里我們就要用到日誌過濾器filter,如下圖所示,通過加號,我們就可以新建一個過濾器了
新建如下:
如:當你想看System.out的信息時,在Filter Name處填System.out(這里注意,這個名字是隨便填寫的)
在by Log Tag處填寫:System.out這個是System.out.println在android中的Tag標志
當你想看Log輸出的信息時,比如你輸出的信息是:Log.d("Test","this is a Test");
在Filter Name處填寫:Testaa,在by Log Tag處填寫:Test.