本文へ移動

中央コンピューターサービス株式会社(CCS)全国の公共・教育ICT支援


トピックス

はじめてのAR!(画像認識技術)#6 Androidネイティブアプリの実行

はじめに

~技術習得のための基礎学習を終えて、実践学習を始めたゆりちゃん。~

ゆりちゃん 統合開発環境の「Android Studio」を使用してAndroidのアプリケーションを開発していると、プログラムを実行する前に「ビルド」という処理が実行されるね。 ゆりちゃん ビルドってなんだろう?

ビルド

ゆりちゃん ビルドとは、アプリケーションに問題がないかを解析し、プログラム言語(ソースコード)から機械が解読可能な機械語(ネイティブコード)に翻訳(コンパイル)する処理のことなんだね! ゆりちゃん ネイティブコードはオペレーティングシステム(OS)毎に存在するため、様々なOSに対応するプログラム言語は、ソースコードからいきなりネイティブコードにコンパイルするのではなく、ソースコードから一度中間言語(オブジェクトコード)にコンパイルしてからネイティブコードにコンパイルするみたい。 ゆりちゃん コンパイルは「コンパイラ」と呼ばれるプログラムによって実行されるんだね。また、コンパイラはコンパイルした結果を実行するための環境(ランタイム環境)に含まれているようだよ。 ゆりちゃん Android Studioのランタイム環境がどのような構成になっているか、調べてみよう!

ランタイム環境

ゆりちゃん Android Studioは、プログラム言語「Java」用のランタイム環境「Java Runtime Environment(JRE)」と、Amdroid OS用のランタイム環境「Android Runtime(ART)」の2種類で構成されるんだね。 ゆりちゃん JREにはJava用のコンパイラ「javac」が、ARTにはAndroid OS用のコンパイラ「DEX」が含まれていて、DEXの仕様はAndroidのバージョンによって異なるみたい。 ゆりちゃん コンパイルの仕様がAndroidのバージョンによってどのように異なるのか、調べてみよう!

コンパイル

ゆりちゃん Androidのバージョン5.0より前は、アプリケーションの起動時(プログラムの実行時)にコンパイルしていたけれど、毎回起動に時間がかかり、通信も発生するから、バージョン5.0でアプリケーションのインストール時(プログラムの実行前)にコンパイルするように変更になったみたい。 ゆりちゃん ただ今度はプログラムの実行前に時間がかかるようになってしまったから、Androidのバージョン7.0では、プログラムの実行時にコンパイルしつつコンパイルの状況を記録して、何回も実行されると判断された箇所は充電中(プログラムの実行前)にコンパイルすることで、プログラムの実行前はもちろん、実行時も徐々にコンパイルの量を減らせるようになったみたい! ゆりちゃん Androidは2019年1月現在バージョン9.0まで存在するけれど、性能面では最低でもバージョン7.0以上がよさそうだね。

おわりに

ゆりちゃん 今回は、ビルドやランタイム環境など、Androidアプリケーションの実行に関する内容を調べたよ! ゆりちゃん 今回はまだ学習段階だから、まずはアプリケーションが動作することを目標とするけれど、将来的にはアプリケーションの性能に関する知識も習得できるように頑張っていこう!

~アプリケーションの性能要件への意識が高まったゆりちゃんであった。~

ゆりちゃん 技術開発推進部ゆりちゃんからのお願い
顔マークを押して、技術ブログの感想をお聞かせください^^
  • 超いいね

    4

  • いいね

    0

  • ふつう

    0

  • まあまあ

    0

  • うーん

    0

技術者への道

TOPへ戻る