私はAndroid搭載端末(Android 1.5を使用していますが、それを更新することはできません。まだ実行していません)でLogCatを使用しようとしましたが、実行中のログイベントのみを追跡します。Androidアプリケーションで独自のログファイルを表示することはできますか?
アプリケーションは、実行時に記録されたすべてのイベントを追跡し、ファイルに保存することはできますか? (それ自体でトリガーされていないものさえも)
私はAndroid搭載端末(Android 1.5を使用していますが、それを更新することはできません。まだ実行していません)でLogCatを使用しようとしましたが、実行中のログイベントのみを追跡します。Androidアプリケーションで独自のログファイルを表示することはできますか?
アプリケーションは、実行時に記録されたすべてのイベントを追跡し、ファイルに保存することはできますか? (それ自体でトリガーされていないものさえも)
this tutorialには、システムログのコピーをStringBuilder
オブジェクトにダンプする方法が記載されています。チュートリアルからコピーしたとして
コード:あなたが読んで、ログの許可を含める必要があります
public class LogTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
Process process = Runtime.getRuntime().exec("logcat -d");
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
StringBuilder log=new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
log.append(line);
}
TextView tv = (TextView)findViewById(R.id.textView1);
tv.setText(log.toString());
} catch (IOException e) { }
}
}
注:
<uses-permission android:name="android.permission.READ_LOGS" />
。
コードの重要な部分はRuntime.getRuntime().exec("logcat -d")
部分です。 -d
スイッチは、現在のログをトスして終了する部分です。もし私がdocumentationを正しく読んでいるならば、そのスイッチをオフのままにしておくと、理論上、logcat
のままにしておいてください。ログの連続する行が表示されるので、stdout
にダンプしてください。
書き込み可能なデータベースとIntentServiceを作成します。
コンポーネントが何かを記録したいときはいつでも、インテントを使ってこのサービスを開始してください。
何か不足していますか?
これは私が見たいシステムイベントです。アクティビティを開始するインテントをトリガしてから、アクティビティが表示されるまでの間に何かが起こっています。 – Raceimaztion
これは手動で行うことができますが、[this](http://stackoverflow.com/questions/8982263/how-to-write-entire-logcat-in-to-sdcard/8982342#8982342)が役立ちます。 –