Androidはすべてを魅了しました。 どこを見ていても-Android 2.0、3.0、4.0の新しい超大型スマートフォン...テクノロジーは目の前で時代遅れになりつつあり、進歩は前進しており、これは良いことです。 しかし、誰もAndroidを知らなかった時代があり、スマートフォンのコストは現在のスマートフォンのコストと同程度です。
当時、普通の携帯電話にはカスタムファームウェアとパッチがありましたが、十分なアプリケーションがありませんでした。 「Javaはどうですか?」と尋ねます。 はい、Javaアプリケーションがありました。 しかし、Javaは何ができるでしょうか? そして最も重要なことは、どのくらいの速さで動作するのか? 一般に、誰もが障害のあるJavaのスローダウンにうんざりしているとき、彼は来ました
-ELF 。
Elf-これは、実行可能ファイルのUNIX形式です。 彼は、電話アイロンのすべての機能とすべてのファームウェア機能を使用することを許可しました。 つまり、これはJavaよりも何倍も高速に動作するネイティブアプリケーションです。 エルフは普通の電話をスマートフォンに変え、ほとんど無限の可能性を提供しました。
私がエルフの登場場所を知っていた最初のモバイルプラットフォームはSiemensで、SonyEricssonとMotorolaに登場しました。 携帯電話でエルフを起動できないということだけです。フォーマットを通常のバイナリックに「変換」し、メモリにロードして実行を開始するエルフローダーの特別なパッチが必要です。 さて、既製のファームウェア関数を使用したい場合(またはElfを起動する必要がある場合)、関数のライブラリ(関数名+アドレス)が必要です。 ここでの主な問題は、すべてのファームウェアのこれらの機能のアドレスが異なることですが、解決方法があります-これらの機能のコードはほぼ同じであり、いわゆるパターンによってこれらの同じ機能を検索できます。
Motorolaのエルフコーディングはすべて非常に複雑であると同時に非常に興味深いものであり、ファームウェアコードの反転に直接関係しています。 アプリケーションがイベントに実装されるという事実に複雑さを追加します(つまり、ほとんどすべてが非同期です)。 イベントはキューに入れられ、イベントハンドラーによってキャッチされるため、マルチタスクが実装されます。 エルフ自体はCまたはC ++で記述されていますが、ほとんどの場合、OOPなしで実行できます。
エルフは何ができますか? スクリーンショットにその機能を示してみましょう(ところで、スクリーンショットを作成するためのエルフもあります)。
インフォーマー-左側、インフォグラフ-中央、DeskUtils-右側。 これらのエルフはすべて、デスクトップにさまざまな情報を表示するように設計されています:天気、場所、SIMカードのバランス、バッテリー残量、信号強度など。
さまざまなスキンのeTunesオーディオプレーヤー。 おそらく、モトで最大のエルフの1人でしょう。
左から右にさらにいくつかのアプリケーション:リーダー、計算機、追加メニュー、16進エディター。
さて、ゲームなしの場所:ボンバーマン、タキシードペンギン、ライン、サッパー、フール、テトリス
もちろん、これらはすべてエルフではありません。 ジャバー、メールエージェント、ICQなどもあります。 モトローラのすべてのエルフは、
motofan.ruフォーラムで見つけることができます。
UPD: motofanに関するアーカイブ
トピックがありました
。この
トピックでは、エルフの誕生のプロセスがどのように進んだかについて学ぶことができます。
PS:誰かがSEとSiemensでどのようにエルフを開発したかについての情報があり、記事の継続を支援したい場合は、ICQまたはLANで登録解除できます。