Samsung Badaプラットフォームでのアプリケーション開発-パート1

サムスンは最近、新しいバダモバイルプラットフォームを導入し、そのプラットフォーム上でスマートフォンのサムスンウェーブを発売しました。 開発者にとって、その意味は、GNU / Linuxまたは独自のOSに基づいたシステムの上に特定の標準APIセットを提供することです。



記事の最初の部分では、どこから始めるべきか、Bada SDKのレビューが行われ、その機能、落とし穴、問題の解決策が説明されています。 2番目の部分では、アプリケーションのパッケージ化(いわゆる展開)、Samsung Appsストア、Badaでのアプリケーションの販売について、著作権コメントとヒントを紹介します。



Badaで遊ぶことを希望する人は、ゴミや文明のその他の利点を収集することなく、C / C ++でコードを記述する必要があります。 これが怖くない場合は、猫をお願いします。



SDKを入手する


まず、 developer.bada.comに登録し、正式にBada-developerになる必要があります。 登録が成功すると、「SDKインストーラー」へのリンクが利用可能になります

IDEおよびシミュレーター/ターゲットSDK「(354 mb)および「言語パック1インストーラー」(170 mb)。 ダウンロードページの名前とヘルプから、各ファイルが必要な理由は誰にでも明らかであると思います。これは、Waveシミュレータのプラットフォームおよびサポートです。 この記事の執筆時点では、SDKバージョン1.0.0b3です。 SDKは現在Windowsでのみ動作しますが、後で明らかになるように、SamsungはGNU / Linuxおよび他のUNIX系OSに移植するのにそれほど困難はありません。 すべてが問題なくインストールされます。



SDK分析


サムスンは一般にオープンテクノロジーに依存していました。 同社はCodeSourceryソリューションを購入しました。このソリューションは、Eclipse MylynとGNU Toolchainのアセンブリです。 後者は、コードがGCC(別名MinGW)バージョン4.4.1によってコンパイルされることを意味します。 サムスンの「秘密」プラグインがEclipseに追加されました。



デバッグには、コンピューターでシミュレーターが使用されます。 エミュレータとは異なり、シミュレーターはデバッグされたデバイスではなく、コンピューター固有のコードを実行することを思い出させてください。 これは、アプリケーションの状態に対する多少の確固たる信頼を得るために、対応するハードウェアを壊す必要があることを意味しています。 将来的には、シミュレータがエミュレータに置き換えられることを願っています。



SDKの一部として、ドキュメントはPDF(/ Documents)に配置されます。これは、プレゼンテーションを実際の開発者にプッシュしたり、APIの一般的な本質を把握したりするのに適しています。 Bada API Referenceを使用することをお勧めします



Hello World!




実際、多数のサンプルアプリケーション(/サンプル)を最初に見る方が簡単です。 韓国人は怠け者ではなく、この機能を実証する42の異なるミニプログラムを作成しました。 お気に入りの例をインポートし、コンパイルして実行します。 最初にアセンブルしてから実行する必要があることに注意してください。そうしないと、IDEはバイナリがないことを誓います。 おそらく、これはバグです。他のケースでは、アプリケーションを起動するだけで十分であり、変更されたコードは自動的に再コンパイルされます。



シミュレーターはAspire 5920gで約10秒間、GDBデバッグモードで20秒間実行されます。 アプリケーションを新たに起動するたびにシミュレータを再起動する必要があるのはいらいらします。そうしないと、IDEはすでに実行されていると誓います。 シミュレーター自体に関しては、非常に禁欲的です。ジョイスティックをクリックすると、起動されたアプリケーションと設定のアイコンで構成されるメインメニューが表示されます。 メニューからアプリケーションを起動しようとしても、何も表示されません-ほとんどの場合、これは意図的に行われます。 シミュレーターのコンテキストメニューを使用して、イベントを作成したり(できなかったり、磁気センサーを制御したりすることもできます)、スクリーンショットを撮り、「スマートフォン」ウィンドウのサイズを変更できます。



bada API


私が最初に思いついたのは、C / C ++プラットフォームの言語以来、多数のコードをBadaに移植する価値があるということです。 ただし、ポートはまったく機能しないか、APIとの戦争に変わる可能性があります。 問題は、Bada POSIXは完全には実装されておらず、基本的なものはそこにあるように見えますが、たとえば、POSIXスレッドはそうではないということです(これはFAQに書かれています)。 pthreadの状況の一部は、オープンソースプロジェクトとCodePlexの MITライセンスによって修正できます。 標準のCヘッダーファイルは、ARM組み込みソリューション用の特別なライブラリであるlibc-newlibに実装されています。 ただし、STLは正常に機能します。 また、誰もBoostの使用を禁じていません。 全体像は記事の議論で形成されます。



ネイティブのBada APIは、C#/。NETを非常に思い出させました。 自分自身で判断する:すべてのクラスは、オブジェクト、たとえばString、File、Directory、Int64から継承します。 オブジェクトにはGetHashCode()メソッドがあります。 名前は非常に頻繁に一致します。 すごいですね。 不快な瞬間のうち、Stringのインスタンスを表示しようとするときのToString()の欠如とGDBの破産に注意する必要があります。 デバッガーは、文字列の最初の文字と長さのみを表示できます。 APIはUnicode上で実行され、完全に非同期です。C++例外はサポートされていますが、使用されていません。 一般的に、楽しい印象がありました。使用例、わかりやすい名前、よく考えられた名前空間とともに、クラスとメソッドが注意深く文書化されました。



ファイルシステムAPIはシンプルで簡単です。 各アプリケーションには、プライベートホームディレクトリ/ホームが割り当てられます。 リソースフォルダ/ Resから、それぞれリソースを読み取ることができます。 詳細については、 Badaファイルシステムを参照してください。



Badaアプリケーションはマルチスレッドです。 しかし、同時に、Badaは疑似マルチタスキングです。 これはすでに書かれているので、繰り返しはしませんが、 アプリケーションUIガイドへのリンクのみを提供します。



プライバシーとセキュリティ


開発者は、熱狂的ではないにしても、この問題に非常に慎重に取り組みました。 特権システムがアクティブになります。 たとえば、/ Mediaフォルダーに画像を作成するには、LOCAL_CONTENT権限が必要です。 同時に、スマートフォン所有者の着信SMS / MMS / EMailにアクセスしたり、IOを使用してホームディレクトリ以外のディレクトリに書き込むことは基本的に不可能です。 後者の場合、Osp :: Content :: ContentManagerUtil CopyToMediaDirectory / MoveToMediaDirectoryメソッドを使用してトリックを行うことができます。 ただし、ホームディレクトリ外にフォルダを作成することはできません。



インターフェース




Bada XML . . 3 — (Form), (Popup) (Panel, ScrollPanel). :



Popup popup;

popup.Construct(L"IDP_POPUP_NAME");

Button *button = static_cast<Button *>(popup.GetControl(L"IDC_BUTTON_PUSHME"));








— . .



. ?


, . IDE Project/Privilege Check , . . developer.bada.com My Applications . - , ,



#define MYAPPNAME SuperBadaApp







, . XML , ID . Bada- Eclipse . Target-Release. . , , .





Bada SDK, , , . , Bada API. !



All Articles