androidに関するBigBeeのブックマーク (6)

  • KMC Staff Blog:AndroidのBinderによるプロセス間のメソッド呼び出し(メモ)

    2011年03月17日 AndroidのBinderによるプロセス間のメソッド呼び出し(メモ) Androidのシステムでは同時にたくさんのプロセスでJava言語で書かれたプログラムがDalvikVMによって動いています。intentを発行して別のプロセスで処理を実行できることがAndroidでのプログラミングの大きな強みです。 このようなプロセスをまたがったメソッド呼び出しは下位レベルではBinderという技術が使われているのですが、私はいままでそれがぼんやりとしか理解できていませんでした。 ソースコードを無理やり追いかけたら、わかりかけてきたのでメモを残します。 Androidのアプリケーションプログラムから別のアプリケーションを起動するにはIntentを発行すればよいのですが、それには android.app.Activity#startActivity メソッドを使用します。 その

    BigBee
    BigBee 2013/08/23
    勉強になる記事
  • KMC Staff Blog:AndroidのBinderによるプロセス間のメソッド呼び出し(メモ3:Binder Thead)

    2011年03月24日 AndroidのBinderによるプロセス間のメソッド呼び出し(メモ3:Binder Thead) 今回はBinder Threadについて。 Eclipseでアプリケーションのデバッグをするとアプリケーションのプロセスの中に、"Binder Thread #1", "Binder Thread #2" などの名前のスレッドがあるのがわかります。これらはいったい何をしているのでしょうか。 Binder Threadのソースコード まずはこのスレッドの名前を頼りにソースを検索してみます。 $ cd frameworks $ grep -r '"Binder Thread #' * 2>/dev/null base/libs/binder/ProcessState.cpp: sprintf(buf, "Binder Thread #%d", s); あっさり見つかりまし

    BigBee
    BigBee 2013/08/23
    メモメモ
  • DSAS開発者の部屋:Android アプリケーションが起動するまでの流れ

    プログラム開発のために Android 上でアプリが起動するまでの過程を調べてみました。備忘をかねて、ソースコードをひと通り追跡した記録をここに控えます。 まとめ ※クリックすると大きな図が開きます Zygote(ザイゴート)プロセスは、Android システムブート時に起動し DalvikVM 体と Android プログラムの実行に必要なダイナミックリンクライブラリと Java のクラスライブラリをロードした状態で待機する常駐プロセスである Zygote プロセスの目的は、同プロセスを fork することによりプログラム実行用のプロセス環境を素早く効率的にシステムへ提供することにある UNIX ドメインソケット /dev/socket/zygote が Zygote プロセスへのインターフェイスであり、同ソケットにプロセス生成要求を送出すると Zygote はプロセス fork を実

    DSAS開発者の部屋:Android アプリケーションが起動するまでの流れ
  • throw Life - Dalvik VMのGarbage Collection概要

    ちょっと時間ができたので、知り合いのブログを読みあさってました。 すると、安藤恐竜さんとこでこんな翻訳記事を見つけました。 Track memory allocations(日語超訳) 大半のケースでは、数多くの小さくて短命なオブジェクトが原因でGCが起動される。世代別GCのような場合には、このようなオブジェクトの回収を最適化し、頻繁にGCが起動されることを防ぐことができる。AndroidのGCは、残念ながらそのような最適化を行うことができず、パフォーマンスに影響の多い一連のコードの中で、短命なオブジェクトを作ると、そのままアプリケーションの性能にとって影響が多くなってしまう。 マジっすか?!一応原文もチェック。 Track memory allocations Most of the time, garbage collection occurs because of tons

  • Android携帯ゲームを作って世界に配信してみよう(1) ―― まずは小さなアプリからこつこつ作ってみる

    ここでは,C/C++プログラマ(Java言語未経験者)を対象として,Android携帯電話などで動作するAndroidアプリの作り方について解説する.「携帯ゲームを作って世界に配信する」ことを目標に,毎回少しずつ理解を深める.第1回となる今回は,開発環境の設定やプログラムについて説明する.Java言語とC/C++言語の構文は方言程度の違いしかないので,Java言語の経験がなくても,組み込み系でC/C++言語での開発経験があれば十分である.Androidアプリに関する基礎知識や開発手順を具体的に学びながら,簡単なアプリを開発してみよう.(編集部) 1. Androidアプリとは?  皆さん,Android携帯電話で動くゲームAndroidアプリ)を作ってみませんか? Androidとは,Google社が開発・提供する,Linuxをベースとしたスマートフォンやタブレット向けのOSです.日

    BigBee
    BigBee 2013/08/20
    メモ:最後のページの「スタック・ベースのVMとレジスタ・ベースのVM」
  • [Android編]短命なオブジェクトを作ってはいけない

    Android上のアプリケーションはJava言語で開発できるが、PCやサーバー向けのJava仮想マシンとは異なる「Dalvik仮想マシン」上で動作する。Dalvik仮想マシンは、モバイル向けに特化されているのが特徴である。 Androidアプリケーションの開発では、Javaの開発現場で培ってきた資産やノウハウを生かすことができる。だが、基的にPC上で動作させるJavaアプリケーションと同様に考えてしまうと、思わぬ落とし穴に陥ることになる。 そこで、主にメモリー管理の面からJava仮想マシンとDalvik仮想マシンの違いを見ていくことにする。 両者とも、メモリー管理はガベージコレクタ(GC)が担当する。ヒープ領域に空きがない場合、不必要なオブジェクトを回収して空き領域を作るのがGCの役割である。Java仮想マシンでは「世代別GC」という方式を採用しているが、Dalvik仮想マシンは「マーク

    [Android編]短命なオブジェクトを作ってはいけない
    BigBee
    BigBee 2013/08/20
    メモメモ
  • 1