Nativeコード(NDK)でBitmapの画像処理

投稿日:  更新日:

Android NDKはNativeコードからBitmapを処理するためのグラフィックライブラリを実装しています。これを使うとBitmapが容易に扱えるので便利です。

画像はデータ量が多いため、画像処理や解析を行うと重い処理になってしまいます。Nativeコードで行えば高速化が出来ます。

また、JNI(Java Native Interface)があるので、Kotlin~Nativeコード間のデータ受け渡しの親和性が高い点もよいです。処理の指示を引数で渡したり、処理の結果をNativeコードの戻り値で返したりが簡単です。

今回、このライブラリを使ってBitmapの画像処理を行ってみたので紹介します。

続きを読む

ログ(Logcat出力)をdebug/releaseビルドでon/offする

投稿日:  更新日:

Androidシステムはログを収集する仕組み(android.util.Log)を備えています。この仕組みを使えば、アプリケーションの処理の流れや、内部の状態を逐次出力できるので、デバッグ作業に役立ちます。

ですが…

リリース時は不要(リリース後の不具合解析で必要になるもの以外)です。

なので、リリースの前にログ出力の記述を無効にしますが、数が多いと大変な作業になります。

今回、debug/releaseビルドの切り替えで、自動的にログ出力をon/offできるようにしたので紹介します。

続きを読む

Native開発環境の構築~既存のProject編~

投稿日:  更新日:

Androidアプリケーションはプログラムの一部をNativeコードで作ることが出来ます。

Nativeコードとは端末のCPUが直接解釈できるプログラム(マシン語)のことです。

演算負荷の大きい処理を高速化したい場合に有効な手段です。

NativeコードのプログラミングはAndroid NDK(Native Development Kit)を使ってC/C++で行います。

そのためのNative開発環境を、Android Studioは組み込めるようになっています。

今回、Android StudioへNative開発環境を構築してみたので紹介します。

※本記事はAndroid Studio 4.1.1で実施しています。

続きを読む

Native開発環境の構築~新規のProject編~

投稿日:  更新日:

Androidアプリケーションはプログラムの一部をNativeコードで作ることが出来ます。

Nativeコードとは端末のCPUが直接解釈できるプログラム(マシン語)のことです。

演算負荷の大きい処理を高速化したい場合に有効な手段です。

NativeコードのプログラミングはAndroid NDK(Native Development Kit)を使ってC/C++で行います。

そのためのNative開発環境を、Android Studioは組み込めるようになっています。

今回、Android StudioへNative開発環境を構築してみたので紹介します。

※本記事はAndroid Studio 4.1.1で実施しています。

続きを読む

Cursorの一致を確認するTruthのSubject

投稿日:  更新日:

プログラムの動作は「入力を処理して出力する」ことの繰り返しです。出力先がデータベースであった場合、ソフトウェアテストでデータベースの内容を確認したくなります。

データベース(バイナリ)自体のアサーションは不一致した時の検証が困難なので、データを取り出した時のCursorの確認できれば良いのですが、アサーションは用意されていません。

なので、Cursorの一致を確認するTruthのSubjectを作成してみました。

続きを読む