Android Marketアーキテクチャ設計解析
原文の住所 http://blog.lytsing.org/archives/606.html
Android Marketアーキテクチャ設計解析
1.ソースコードがありません。2.反コンパイルツール(appdump/wiresthark)の研究を通して、100%の正確さは保証できませんが、全体の考えはやはり分かります。国内にも多くの第三者電子市場がありますが、神に似ていません。
Android Market Overview:Cient&Server
大体のコードディレクトリ(android 1.5バージョン、後のバージョンは複雑です):
各Activityは、Activityを後綴として、例えばAssset CategoryBrowserActivity.java appiディレクトリにおいて、BaseServiceのクラスを継承し、Serviceを後尾に、例えばAssset Service.java modelディレクトリにProtbuf TAGのクラスを提供し、Prottoを後尾にします。
使用するデザインモード
MVC、COR、Observer、Stte、Singleton、Abstact Factoryなど、Androidのソースコードを見るのが一般的です。このほか、Server/Clientネットワークシステムに対して、Service Locator、Request-Resonse、lazyloadなどの設計方法も用いられます。
データ交換フォーマットprotobuf
はい、 Protocol Buffers in Android ちょっと説明しましたが、プロトブ転送はバイナリで、Json、XMLよりスピード的な優勢と使い勝手があります。サーバー側はC/C+、Java、pythonなどで実現できます。
API
http://code.google.com/p/android-market-api/ Android MarketのオープンソースAPIプロジェクトは、非公式提供のGoogle Protocol Buffersプロトコルに基づいて実現されます。
Cache機構Cacheはメモリに保存でき、diskに書き込むこともできます。
その他類似
具体的な実現は、libaddresinputを参照することができます。 の中の Cache.java
ローカルデータベース
PUSHのお知らせ
ソフトウェアの更新がある場合は、プッシュプッシュでメッセージを送ります。push機構は、android froyoの前に、XMPPプロトコルを使って、その後c 2 dmです。
支払いシステム
Google checkoutは、使ったことがありません。
まだ細かいところがたくさんあります。いちいち詳しく述べません。つまり、このようなプラットフォームを作るには、考えなければならないことが多すぎます。
Android Marketアーキテクチャ設計解析
1.ソースコードがありません。2.反コンパイルツール(appdump/wiresthark)の研究を通して、100%の正確さは保証できませんが、全体の考えはやはり分かります。国内にも多くの第三者電子市場がありますが、神に似ていません。
Android Market Overview:Cient&Server
大体のコードディレクトリ(android 1.5バージョン、後のバージョンは複雑です):
Vending
|-- AndroidManifest
|-- res
| |-- drawable
| |-- drawable-finger
| |-- layout
| |-- menu
| |-- values
| `-- xml
`-- src
`-- com
|-- android
| `-- vending
| |-- SuggestionsProvider.java
| |-- ...
| |-- VendingNotificationManager.java
| |-- adapters
| | |-- AggregatedAdapter.java
| | `-- SectionAdapter.java
| |-- api
| | |-- ApiException.java
| | |-- ...
| | `-- UninstallReasonService.java
| |-- cache
| | |-- CacheManager.java
| | |-- CacheManagerImpl.java
| | `-- Cacheable.java
| |-- controller
| | |-- ActivityAccessor.java
| | |-- ...
| | `-- ResultsController.java
| |-- licensing
| | |-- ILicenseResultListener.aidl
| | |-- ILicensingService.aidl
| | `-- LicensingService.java
| |-- model
| | |-- Address.java
| | |-- ...
| | `-- UninstallReasonResponseProto.java
| `-- util
| |-- Base64.java
| |-- ...
| `-- Util.java
`-- google
`-- android
|-- googleapps
|-- googlelogin
`-- providers
コードファイル命名規則各Activityは、Activityを後綴として、例えばAssset CategoryBrowserActivity.java appiディレクトリにおいて、BaseServiceのクラスを継承し、Serviceを後尾に、例えばAssset Service.java modelディレクトリにProtbuf TAGのクラスを提供し、Prottoを後尾にします。
使用するデザインモード
MVC、COR、Observer、Stte、Singleton、Abstact Factoryなど、Androidのソースコードを見るのが一般的です。このほか、Server/Clientネットワークシステムに対して、Service Locator、Request-Resonse、lazyloadなどの設計方法も用いられます。
データ交換フォーマットprotobuf
はい、 Protocol Buffers in Android ちょっと説明しましたが、プロトブ転送はバイナリで、Json、XMLよりスピード的な優勢と使い勝手があります。サーバー側はC/C+、Java、pythonなどで実現できます。
API
http://code.google.com/p/android-market-api/ Android MarketのオープンソースAPIプロジェクトは、非公式提供のGoogle Protocol Buffersプロトコルに基づいて実現されます。
Cache機構Cacheはメモリに保存でき、diskに書き込むこともできます。
/data/data/com.android.vending/cache # ls
AVMC_UAR{-5434199881535588028_}_____0_10_rei___
AVMC_UAR{8501175443043592143_}_____0_10_rei___
AVMC_UAR{}APPLICATION__APP_WALLPAPER_POPULAR_ALL_0_10____
AVMC_UAR{}APPLICATION__APP_WALLPAPER_POPULAR_ALL_10_10____
AVMC_UAR{}_____0_10__rvh__
AVMC_UCR-5434199881535588028_0_3_self_
AVMC_UCR8501175443043592143_0_3_self_
AVMC_UGIR_-2863385711196347958
AVMC_UGIR_-4594342797900232749
AVMC_UGIR_-5005302620309917353
AVMC_UGIR_-543419988153558802
......
AVMC_UGIR_-5434988153558802のフォーマットは「AVMC_」+「U」/「S」+「GIR_」+asetIdです。その他類似
具体的な実現は、libaddresinputを参照することができます。 の中の Cache.java
ローカルデータベース
/data/data/com.android.vending/databases/assets.db
それをpullに出して、sqlite 3ツールでデータテーブルが見えます。これは主にダウンロードしたアプリ情報を保存するために使います。PUSHのお知らせ
ソフトウェアの更新がある場合は、プッシュプッシュでメッセージを送ります。push機構は、android froyoの前に、XMPPプロトコルを使って、その後c 2 dmです。
支払いシステム
Google checkoutは、使ったことがありません。
まだ細かいところがたくさんあります。いちいち詳しく述べません。つまり、このようなプラットフォームを作るには、考えなければならないことが多すぎます。