サイト移転のお知らせ:http://techbooster.org/に移転しました

ハードウェアアクセラレーションを使用する(1)

7月 17, 2011   //   by kei_i_t   //   アプリケーション  //  No Comments

Android3.0以降から、画面の描画を高速化する仕組みであるハードウェアアクセラレーションが使用できるようになりました。

ハードウェアアクセラレーションを使用すると、画面描画だけでなく、アニメーションも高速化することができるようになります。

今回から2回に分けてハードウェアアクセラレーションの解説をします。

詳細はイカから。

ハードウェアアクセラレーションとは

ハードウェアアクセラレーションはAndroid3.0以降の端末に搭載されているGPUを使用して画面描画を高速に行う技術です。

Google純正のアプリではブラウザやカレンダに使用されています。

ハードウェアアクセラレーションを使用するために

ハードウェアアクセラレーションを使用するためには、AndroidManifestで”android:hardwareAccelerated“属性の値をtrueに設定する必要があります。

この属性を指定できるタグはイカの通りです。

  • Application
  • Activity
  • View

android:hardwareAccelerated属性はイカのように各タグの階層ごとにON/OFFを指定できます。

<application android:hardwareAccelerated="true">
    <activity android:hardwareAccelerated="false"/>
</application>

ハードウェアアクセラレーションはWindowにも設定することができます。

イカにWindowに対して設定する方法を記述します。

getWindow().setFlags(
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, 
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

Windowにハードウェアアクセラレーションを指定してもその配下の個別のViewに対して無効化することもできます。

view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

ハードウェアアクセラレーションが設定されているかを確認する

ハードウェアアクセラレーションが設定されているかを確認する為に、イカの2種類のメソッドが用意されています。

  • View#isHardwareAccelerated()
  • Canvas#isHardwareAccelerated()

これらのメソッドの戻り値でtrueが返却された場合はハードウェアアクセラレーションが設定されていることになります。

ハードウェアアクセラレーションが無効な描画機能

CanvasとPaintクラスの一部のメソッドにはハードウェアアクセラレーションが機能しません。

イカはハードウェアアクセラレーションが機能しないメソッドの一覧です。

  • Canvas
    • clipPath
    • clipRegion
    • drawPicture
    • drawPoints
    • drawPosText
    • drawTextOnPath
    • drawVertices
  • Paint
    • setLinearText
    • setMaskFilter
    • drawRasterizer

これら意外にもイカに列挙するメソッドはハードウェアアクセラレーションが使用されている場合に挙動が変化します。

  • Canvas
    • clipRect: XOR 、 DifferenceとReverseDifferenceのクリップモードが無視され、3D変換は、クリップ矩形には適用されません。
    • drawBitmapMesh:色の配列は無視されます
    • drawLines:アンチエイリアシングはサポートされていません
    • setDrawFilter:設定されますが、無視することができます
  • Paint
    • setDither:無視されます。
    • setFilterBitmap:フィルタリングが常にONになります
    • drawRasterizer:テキストだけが動作します

次回予告
次回はハードウェアアクセラレーションをより効果的に実装する為のTipsなどを紹介します。

関連する記事:

Sponsored Link

Comments are closed.

技術書新刊 発売中

アンドロイドアカデミアには、CIやテスト、互換検証など実務に生きるノウハウをあつめています

技術書新刊 発売中

Android Next!はAndroid 7.0に対応したはじめての技術書です!


The Web Explorer 2はCSSの中央寄せやWebAudioなど未来を読み解く一冊です


Revised TypeScript in DefinitelylandはTypeScript 2.0(β)に対応した解説書です。インストールから型定義まで幅広くサポートしています


技術書をかこう!はエンジニアらしい執筆環境を構築、HowTo本です