Androidデバッグ方法大全



Androidデバッグ方法大全
 
 
 
Jason in iteye.com 
 
 
 
コードを書くことはプログラマー一人一人が一番喜んでやることですが、開発中にプログラマーを悩ませることもたくさんあります.プログラマーが最も困っていることは、無数のバグやソフトウェアのリリースが遠いことを見ることです.プログラマーが最も困っていることは、プログラムがデバッグ状態で問題ないことですが、実際の実行では問題があります.
デバッガは、プログラマ1人当たりの作業に不可欠な部分であり、デバッガがプログラマの50%の作業時間を費やしていると言っても過言ではありません.このように、デバッグプログラムはプログラマー一人一人に欠かせない技術であり、デバッグレベルの高低がプログラマーレベルの高低を決定している.
Androidプログラムを開発する前に、Androidプログラムをデバッグする方法をまとめる必要があります.
現在、開発中によく使われるデバッガの方法について、以下のようにまとめています.
Eclipse開発プラットフォームを使用してデバッグします.
Android SDKと組み合わせてデバッグします.
JUnitを使用してデバッグします.
Eclipse開発プラットフォームを使用したデバッグ
Eclipseツールを使用してAndroidを開発するには、ブレークポイントの設定、変数値の表示、現在のスタックの表示など、熟練したデバッグ技術が必要です.Eclipseツールを開き、「Run」をクリックします.
また、デバッグ中に他のデバッグパネルを開き、一度使用すれば完全に理解できると信じています.これらのデバッグツールを軽視しないでください.注意深く、他の同僚が何日も解決していないバグを言っていない限り、これらのツールを通じて発見しました.そのため、これらのツールを熟練して使用することは、開発者にとって必要であり、時には半分の効果を得ることもできます.
Android SDKによるデバッグ
複雑なプログラムの実行中に、どのようにプログラムをデバッグしましたか?プログラム実行プロセスの情報をファイルとして保存したり、IDEに出力したりすることで、プログラムが正常に実行されているかどうかを知ることができます.
AndroidではLogクラス、Logクラスはandroidを使用できます.utilパッケージでは、実行プロセスの情報をIDEに出力し、プログラムが実行しているプロセスを直接表示できます.Logクラスはいくつかの静的方法を提供する:Log.v(String tag, String msg); Log.d(String tag, String msg); Log.i(String tag, String msg); Log.w(String tag, String msg); Log.e(String tag, String msg);
 
それぞれVerbose,Debug,Info,Warning,Errorに対応する.tagは識別であり、任意の文字列であってもよく、通常はクラス名+メソッド名を使用することができ、主にログの表示時にフィルタ条件を提供するために使用されます.プログラム実行後、show viewでLocatを選択すると出力が直接見えます.プログラムの実行後、DDMSでプログラムの実行過程記録を確認したり、String tagで出力された情報をフィルタリングしたりすることもできます.Android DDMSの使い方については、Android DDMS使用詳細を参照してください.
以上の方法に加えて、Toast Notificatioを使用してインタフェースに出力情報を表示するなど、プログラム実行プロセス情報の出力をプログラム実行の一部とすることもできます.もちろん、これらはデバッグコードにすぎず、プログラムをパブリッシュする際に削除する必要があります.
最後の方法は、実行プロセスの情報を直接ファイルに格納し、プログラムの実行後にファイルを開き、出力された情報を表示する最も効果的な方法でもあります.いくつかの複雑なツールでは、このようなログファイルの方法でファイルの実行プロセスを記録します.Androidでファイルを読み書きする方法は、Androidデータストア(まとめ編)を参照してください.
以上の2つの方法を見て、以上は問題を発見した後に問題の原因を見つけただけで、問題を解決するのは、受動的で消極的ではないかと思います.バグを避ける他の有効な方法はありませんか.ここを見て、一部の「牛」人は「私が書いたコードにはほとんどバグがなく、私のコードは何年も崩壊したことがない」と言った.私個人の観点から言えば、確かに牛です.少なくとも私自身は、自分のコードが弱いような気がします.完全に正しいコードを書くのは本当に容易ではありません.自分でいろいろ考えましたが、どうしてこんなことになったのか、自分で書いたコードが確かに悪いのではないでしょうか.少なくとも私自身はコードを書く過程ですべてとても注意深くて、できるだけ問題をはっきり考えて書いて、毎回修正するのはすべて慎重です!その後、各セグメントのコードは書くときにいくつかの「実行環境」があり、その後使用する過程で、この環境は徐々に破壊され、最後に修正がめちゃくちゃになったことが分かった.もしあなたも同じように受けているなら、以下の説明をよく読むことをお勧めします.
 
JUnitデバッグの使用
AndroidはJUnitへのサポートを増やし、プログラマーにとって良いニュースです.
まず、JUnitがどのような問題を解決するために使われているのかを説明します.JUnitはテスト駆動開発方式を採用し、つまり開発前にテストコードを作成し、主にテストされたコードがどのように使用されるか、エラー処理などを説明するために使用される.その後、コードの書き込みを開始し、最後にテストコードに完全に合格するまで、テストコードでこれらのコードを徐々にテストします.
プログラマーの思考習慣に合わないと感じたかどうかを見て(コードを書いてからデバッグしている)、確かにこれもJUnitがプログラマーの思考に対する「転覆」である.ここで私自身も、なかなかできないような気がしますが、なぜですか?1匹の「馬」が完全に設計されていない前に、どのようにこの「馬」が将来どのように走るかを規定しますか?そして「馬」が将来どのように「走る」かを定義しても、実現時に「馬」が変わったらどうする?やはり、一人で2つのキャラクターを同時に持つことはできません.そうしないと、自分が今どのキャラクターなのか分からないことがあります.
ここまで言うと、私自身がJUnitの「エラー」の使い方を説明します.これはJUnitテスト駆動開発の目的と矛盾しているかもしれませんが、確かにバグを効果的に減らすことができます.JUnitはコアから言えばソースコードとテストコードを完全に分離し、テストコードを個別のプログラムとして使用します.先に紹介した方法は、ソースコードとテストコードを一体化しており、ソースコードの重要性がテストコードの重要性より大きいため、テストコードには不完全、構造不明確などの問題がしばしばあり、プログラマーのユニットテストも不完全である.JUnitは私が完全なユニットテストに使用し、現在のコードの一部に対して、各「環境」での実行結果をテストします.JUnitの主な機能を簡単に説明します.
JUnitには、まずテストケースを管理する機能があります.どのコードを修正したのか、どの部分に影響を与えるのか、JUnitで今回の修正を完全テストします.これはJUnitのいわゆるTestSuiteです.
テストするコードをどのように定義しますか?これはJUnitのいわゆるTestCaseで、ソースコードのテストの必要に応じて各TestCaseを定義し、TestCaseを対応するTestSuiteに追加して管理しやすい.
テストの環境を定義する方法TestCaseテストの前に環境構成を呼び出し、テストで使用します.もちろん、直接テストの例でテスト環境を定義することもできます.
最も重要な部分は、テスト結果の検出です.正常で異常なテストごとに、実行結果が何であるか、結果が予想されるかなど、明確な定義が必要であり、JUnitはこの面で強力な機能を提供しています.
以上の部分は我々が通常IDEを使ってデバッグする過程と全く同じで、ただテスト用例管理、テスト結果検出などの機能を増加しただけで、ユニットの効率を高め、ユニットテストの完全性を保証し、ユニットテストの目標を明確にした.以上の4つの問題を持って、簡単に例を挙げて分析します:ソースコードは以下の通りです:public class SampleCalculator{public int add(int augend,int addend){return augend+addend;}public int subtration(int minuend , int subtrahend) {return minuend – subtrahend ;} } テストコード(TestCase)は以下の通りである:import junit.framework.TestCase; public class TestSample extends TestCase { public void testAdd() { SampleCalculator calculator = new SampleCalculator(); int result = calculator.add(50 , 20); assertEquals(70 , result); } public void testSubtration() { SampleCalculator calculator = new SampleCalculator(); int result = calculator.subtration(50 , 20); assertEquals(30 , result); } }
 
以上のTestSampleテスト例ではSampleCalculatorについて完全なユニットテストを行い、テスト結果について予想通りに説明した.もちろん、TestSampleをTestCaseに追加して管理を容易にする必要があります.
import junit.framework.Test; import junit.framework.TestSuite; public class TestAll{ public static Test suite(){ TestSuite suite = new TestSuite(“TestSuite Test”); suite.addTestSuite( TestSample.class); return suite; } }
 
以上、TestSampleを「TestSuite Test」に追加しましたが、将来的にテスト用例を選択する過程でTestSuite Testを選択すれば、TestSampleは現在のテストに参加します.将来SampleCalculatorに他の機能が追加された場合、TestSampleに対応するテストを追加するだけで、TestSampleに対して完全なユニットテストを行うことができます.
ここを見て、上の4つの問題について、大体理解したはずです.最后に说明する必要があります:TestCaseの管理は、完全にインタフェース化されており、JUnitの要求に従って実现するだけでUIインタフェースが自动的に生成されます.これは心配する必要はありません.JUint packeageをダウンロードし、必要に応じて自分の必要なものを选択する必要があります.大胆にやってみると、プログラミングは本当に「素晴らしい」ことがわかります.
 
説明をまとめる
以上は仕事でまとめたコードデバッグの方法で、Androidアプリケーションの開発と結びつけて、将来Androidアプリケーションを深く開発するために堅固な基礎を築きました.
 
もう一度説明をまとめる
 
以上の内容は完全に私がオリジナルしたわけではありません.この文章は完全に話しているので、ネットユーザーのいくつかの文章と間違いを修正しました.そして、私も原文の出所が見つかりません.そのため、私は私のwordからコピーしました.皆さんに役に立つことを望んでいます.