・プロジェクトの設定→ビルド・トリガ
SCMをポーリングのスケジュールに「H/2 * * * * 」を入れる
上記により、2分ごとにSVNまたはGitの変更を確認するようになる、
新たにコミットなどが有り、リビジョンが変更された時、登録をしたビルドが実行される。
ソースの間違いなどを解析してくれる。 こちらはAndroidStudioでもプラグインとして存在しており、 AndroidStudio側でも確認が可能 コードの間違いなどがあれば下記のように説明や解決法なども付けて表示してくれるので便利!
このメソッドは、ループの中で + を使用して String を構築していると思われます。 各々の繰り返しにおいて、String は StringBuffer/StringBuilder に変換、追加され、String へ変換されます。 各々の繰り返しで文字列が再コピーされ、増大すると繰り返しの数で二次コストの原因になる可能性があります。 StringBuffer (または J2SE 5.0の StringBuilder) を明示的に使うとより良い性能を得られます。 たとえば、
// This is bad String s = ""; for (int i = 0; i < field.length; ++i) { s = s + field[i]; }
// This is better StringBuffer buf = new StringBuffer(); for (int i = 0; i < field.length; ++i) { buf.append(field[i]); } String s = buf.toString();
・ファイル→設定→plugins→Browse Repositories→FindBugs-IDEAを検索しインストールする。
・ビルドファイルが出来た後にFindBugsのAnalyze Scope Filesを実行する
・Androidのソースにまず、結果を排出するようのタスクを作成する。
・build.gradleに下記ソースの書き込み
apply plugin: "findbugs" task findbugs(type: FindBugs) { ignoreFailures = true effort = "max" reportLevel = "low" // *どのレベルの報告まで対応するかで変更* //excludeFilter = new File("${project.rootDir}/config/findbugs/findbugs_filter.xml") //こちらが有るとバグる? classes = files("build/intermediates/classes/") source 'src/main' include '**/*.java' reports { xml { destination "${project.rootDir}/build/reports/findbugs_report.xml"// レポート排出場所の指定 } } classpath = files() }
・ビルドに「シェルの実行」を追加
・下記コマンドを書き込む
※権限を設定されている場合に動かなくなるため、Workspace上に有るgradlewは使わず、ローカルに存在するgradlewを使っている。
#cleanしてビルド(全種のBuildVariantを作成 #cleanしないとerrorになるっぽい? /Users/sou/gradlew clean #Targetによって後ろの部分は変更する #buildでも可(ただ、すべてのTargetで生成されるので時間がかかる) /Users/sou/gradlew assembleDevelopDebug #taskで登録をしたfindbugsの実行 /Users/sou/gradlew findbugs
・ビルド後の処理にFindBugs警告の集計を追加
集計するファイルに上記ソース側でreportsに指定した場所を書き込む
build/reports/findbugs_report.xml
パフォーマンスに支障があるソースなどの潜在的な問題を検出し警告してくれます。
・ビルドにシェルの実行を追加
・下記コマンドを書き込む
#lintの結果排出用 /Users/sou/Library/Android/sdk/tools/lint . --xml ./lint-results.xml
・プラグインのAndroid Lint Pluginを入れる。
・ビルド後の処理にPublish Android Lint resultsを追加
※上記のコマンドでプラグインの初期設定の場所に排出するため設定は不要
※場所を変えたい場合は入力必須