トピックス

はじめてのAR!#6 ~Androidアプリケーションの実行~

中央コンピューターサービス株式会社(CCS)は2018年4月に技術開発推進部を新設し、お客様へのサービス向上に向けた更なる取り組みとして「人工知能(Artificial Intelligence/AI)」や「拡張現実(Augmented Reality/AR)」等の先端技術の調査を開始しました。奮闘しながら取り組む女性社員ゆりちゃんが、その様子をお伝えします。

前回までの内容:
はじめてのAR!#1 ~スマートグラス~
はじめてのAR!#2 ~技術習得の流れ~
はじめてのAR!#3 ~APIプログラミング~
はじめてのAR!#4 ~オープンソースライブラリ~
はじめてのAR!#5 ~基礎学習振り返り~



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

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

~ビルドについて調べたゆりちゃん。~

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

~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のコンパイルの仕様について調べたゆりちゃん。~

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

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

~次回に続く~

技術者への道
  • 超いいね

    1

  • いいね

    0

  • ふつう

    0

  • まあまあ

    0

  • うーん

    0

※Android は Google LLC. の商標です。
※Javaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における商標または登録商標です。
※当ページの人物画像はNIGAOE MAKERで作成しました。

TOPへ戻る