PR/BLOG

広報・ブログ

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

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

はじめに

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

ゆりちゃん

統合開発環境の「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アプリケーションの実行に関する内容を調べたよ!

ゆりちゃん

今回はまだ学習段階だから、まずはアプリケーションが動作することを目標とするけれど、将来的にはアプリケーションの性能に関する知識も習得できるように頑張っていこう!

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

~次回に続く~

 

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

 

一覧に戻る
ゆりちゃん

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