Android 概説 平田 裕
ARM Advanced RISC Machines ARMアーキテクチャは消費電力を抑える特徴を持ち、低消費電力を目標に設計されるモバイル機器において支配的となっている。命令セットは8ビットCISCである6502を発展させたものであり、典型的なRISCというよりはむしろCISC的で手作業による最適化がしやすい特徴的なアーキテクチャを持つ。 ARMファミリーは組み込み型での32ビット RISC CPUのおよそ75%を占め、全世界で最も使用されている32bit CPUアーキテクチャのひとつである。
CISC CISC(しすく、英: Complex Instruction Set Computer、複合命令セットコンピュータ)は、コンピュータの命令セットアーキテクチャ(ISA)の設計概念の一つである。単純な命令を指向したRISCが考案されたときに、対比して従来のISAは複雑であるとして、"Complex" の語を用いた "CISC" と呼ばれる様になった。典型的なCISCのISAはしばしば、単一の命令で複数の処理を行う、可変長命令である、直交性がある、演算命令のオペランドにメモリを指定できる、などで特徴づけられる。 CISCを採用したプロセッサ(CPU)をCISCプロセッサと呼ぶ。CISCプロセッサに分類されるプロセッサとしては、マイクロプログラム方式を採用したSystem/360、PDP-11、VAXなどや、マイクロプロセッサのMC 680x0、x86などがある。
RISC RISC(りすく、英: Reduced Instruction Set Computer、縮小命令セットコンピュータ)は、コンピュータの命令セットアーキテクチャ(ISA)の設計手法の一つで、命令の種類を減らし、回路を単純化して演算速度の向上を図るものである。なお、RISCが提唱されたときに、従来の設計手法に基づくアーキテクチャは対義語としてCISCと呼ばれる様になった。
スマートフォン iPhone gPhone wPhone
携帯電話 vs スマートフォン 携帯電話 スマートフォン 無線電話 PDA Personal Digital Assistant Windows CE / wPhone Personal Data Assistance Newton / iPhone
Ubuntu Ubuntu(ウブントゥ[5]、ウブンツ、国際音声記号[/ùbúntú/]; oo-BOON-too[6])とは、Debian GNU/LinuxをベースとしたLinuxディストリビューションの一つである。 Ubuntuの開発目標は、平均的な利用者にも使いやすい最新かつ安定したオペレーティングシステムを提供することであり、DELLが自社製品に採用するなどの実績がある。 UbuntuはCanonical Ltd.から支援を受けて開発されている。Canonical Ltd.の創業者は、南アフリカ生まれでイギリス市民権を持つマーク・シャトルワースであり、ディストリビューション名のUbuntuは、南アフリカのズールー語の言葉で「他者への思いやり」などの意味をもっている[7]。 Ubuntu は、Debian GNU/Linuxをベースに開発されている。Debian に由来する他の派生ディストリビューションの中には、プロプライエタリなソフトウェアやクローズドソースな機能を追加しているものもあるが、Ubuntu ではなるべく自由なソフトウェアを使うことを方針としており、Debian の思想に近い位置に立つように努めている
Dalvik VM Android用のアプリケーションは、基本的にはDalvik仮想マシン(VM)と呼ばれるAndroid OS上で動作し、プレ・インストール・アプリと、後からインストールするアプリを、公平に扱うのが特徴である。Apache HarmonyからSwingやAWTなどの一部のAPIを除去し、UIなどのAPIを追加したライブラリとなっている。 Java CDCのAPIは、全てではないが、概ね含まれている。Sun Javaの互換性テストを通過していない。
Android 通常のJava 違いを考慮し設計する 今回のアプリケーションは、Android 動作する。しかし、AR部分は、特にGLの部分 は、通常JAVAとして設計されていて動作する。C++でコーデングされている部分も 存在し、レジスターベースのAndroidは、その違いを吸収できない。
Androidは,マルチタスクで複数の処理を同時に実行できるが,画面(フォアグラウンド)に表示されるアプリケーションは,常に1つと定められている。 カメラの要求! Face Detection カメラとアプリケーション 同時に走っている。 カメラのメモリー要求に アプリケーションが 答えられない。 最悪・再起動 現在行われていない
Android 2.x Android 1.6 症状 システム停止の原因 Debugger システム停止 OS再起動 メモリーリーク Stack over flow
ソースコードの問題点 Activity の管理 ArrayListの処理 ガベージコレクション 例外処理 Pause処理 Resume処理 Finish()処理 ArrayListの処理 clear()処理 Dispose処理 ガベージコレクション System.gc() 例外処理 try & catch exception
実装追加 安全に終了させる。 System.exit(RESULT_OK); メモリー領域の減少 @Override public void onLowMemory() { // TODO super.onLowMemory(); } System.exit() kills your entire process. activity.finish() just hides, stops and destroys your activity. Your process is still running.
リソースの圧縮のデメリット 設計ミス Zip圧縮してもサイズ は、変わらない。 解凍するには、プログラム が走る。 もともとPngファイルは、圧縮されている。さらにZipファイルとして圧縮している。 解凍し、表示するためには、伸張するためのメモリーを必要とする。 また、データの保管場所としてメモリーが必要となる。 トリプルでリソースを必要とする。 *Drawable ファイルとして直接描画すればリソースを食わない。
現在のソース 改善のため設計変更 ZIP Png/Drawable Png 表示 リソースの大量消費 Bitmap 表示