Android クライアントと PHP サーバーの通信 (4)---Aurora プッシュ サンプル プロジェクトの分析
概要
前のセクションでは Jiguang の登録方法について説明しましたこのセクションでは、サンプル プロジェクトのフレームワークを学習し、移植の準備をします。
ルーチンのソースコードを分析する
まず、ルーチンのソースコード構造を分析し、ルーチンと比較することをお勧めします。 JPUSH 分析の公式ドキュメント (http://docs .jpush.io/) を参照してください。これは私が行ったことです。
アプリケーションの登録後、ダウンロードされたサンプル プロジェクトの構造は次のとおりです。
ExampleApplication.java: このクラスJPush SDK を呼び出すときに、JPush が提供する API の init() を呼び出す必要があるため、Application クラスがカスタマイズされました。公式ドキュメントによると、「init はアプリケーションの起動時に API を 1 回呼び出すだけで済みます。」そのため、Application クラスの場合、MainActivity 内で init() を呼び出すと、init() が複数回呼び出される可能性があります。もちろん、定義された ExampleApplication クラスは AndoridManifest.xml で設定する必要があります。
ExampleUtil.java: 名前が示すように、「Util」は、IME コードの取得、APPKEY の取得など、いくつかのグローバル メソッドまたは属性をこのクラスで定義します。
MainActivity.java: これは誰もが知っている、アプリケーションのメイン インターフェイスです。
MyReceiver.java: これは、BroadcastReceiver を継承し、カスタム レシーバー継承クラスです。このクラスが定義されていない場合、ユーザーはプッシュ通知をクリックした後、デフォルトでメイン インターフェイスにジャンプし、カスタム メッセージを受信しません。以下に示すように、このクラスも AndoridManifest.xml で構成する必要があります。
PushSetActivity.java: このクラスは主に、タグやエイリアスの設定、通知バーのスタイルのカスタマイズなど、JPush の「詳細オプション」を設定します。
settingActivity.java: このクラスも JPush の設定を行い、主にプッシュ受信時間の設定を行います。
TestActivity.java: このクラスはアクティビティを継承し、主にユーザーが受信したプッシュ メッセージを表示するために使用され、ユーザーが通知バーでプッシュ メッセージをクリックすると、このアクティビティにジャンプします。
AndoridManifest.xml を再度分析してみましょう。下の図は、コンテンツ
の完全なスクリーンショットです。 2 行: Android 名前空間を指定します
3 行: 標準のアプリケーション パッケージ名を指定します。これはアプリケーションのデフォルト名でもあります。ここでのパッケージ名は、src フォルダー内の com.example.jpushdemo パッケージと比較すると混同される可能性があります。実際、Android 開発を専門とする人は、1 つの src に複数のカスタム パッケージを含めることができることをよく知っています。この com.example.jpush パッケージには、JPush の呼び出し操作のみが含まれています。 JPush の操作は抽出され、カスタム パッケージにカプセル化されます。
行 4: デバイス アプリケーションのバージョン識別コード。アプリが更新された回数を表す整数値である必要があります。変更するときにカスタマイズできます。
5 行: ユーザーがバージョンを表示するには、ある程度の可読性が必要です。
7 行目: 最小バージョン、最大バージョン、ターゲット バージョンなど、アプリケーションで使用する必要がある SDK バージョンを指定します。
8 ~ 10 行目: ユーザー権限をカスタマイズします。 android:name="com.lygk.lovelife.permission.JPUSH_MESSAGE" に注意してください。JPush オペレーションのパッケージ名が com.test.jpushdemo の場合、ここでは android:name="com.test.jpushdemo.JPUSH_MESSAGE" になります。実際、これは単なる名前です。このアクセス許可を参照する他の場所で使用されている名前が、このカスタム アクセス許可と一致していることを確認してください。
行 13 ~ 33: アプリケーションに必要な許可のステートメント。公式ドキュメントに記載されています。
行 34 ~ 139: アプリケーションの構成ルート要素。アプリケーションに関連するすべての構成要素が含まれます。
35 行目: アプリケーション アイコン
36 行目: アプリケーション名
37 行目: これは定義したクラスの Application の名前です。つまり、アプリケーションは com から始まります。 .example.jpushdemo パッケージの下の ExampleApplication。
行 40 ~ 47: MainActivity.java に対応する、Activity アクティビティ コンポーネント (つまり、インターフェイス コントローラー コンポーネント) の宣言。 Android アプリケーションのすべてのアクティビティは AndoridManifest.xml 構成ファイルで宣言する必要があることに注意してください。宣言しないと、システムはアクティビティを認識または実行できません。
49 行目: PushSetActivity.java に対応する、Activity アクティビティ コンポーネントの宣言
51 行目: SettingActivity.java
に対応する、Activity アクティビティ コンポーネントの宣言 53 ~ 58 行目: アクティビティアクティビティコンポーネントのステートメント、TestActivity.java
に対応行 62 ~ 71: JPush SDK パッケージで定義されている PushActivity.java に対応するアクティビティ アクティビティ コンポーネントの宣言。これは、電話がプッシュ メッセージを受信したときに通知バーに表示されるアクティビティであると完全に疑っています。
行 73 ~ 77: Service コンポーネントの宣言タグ。特定の Android サービスを定義および説明するために使用されます。このうち、 android:name は Service サービス クラス名を表し、 android:enabled はサービス スイッチを表し、 android:exported はサービスが他のアプリケーション コンポーネントによって呼び出されるか、サービスと対話できるかどうかを示します。
行 81 ~ 92: JPush SDK パッケージによって定義された PushService サービスの宣言。
行 95 ~ 113: Boardcast Receiver ブロードキャスト レシーバー コンポーネントの宣言。特定の Android ブロードキャスト レシーバーを定義および記述するために使用されます。 android:name は Boardcast Receiver の受信クラス名を表し、android:enabled は受信スイッチを表します。インテント メッセージ フィルターの
115 行目: Boardcast Receiver ブロードキャスト レシーバー コンポーネントの宣言。ここには AlarmReceiver があります。
行 119 ~ 132: Boardcast Receiver ブロードキャスト レシーバー コンポーネントの宣言 これは、ソース コード パッケージの MyReceiver.java に対応する MyReceiver カスタム ブロードキャスト レシーバーです。
行 136:
137 行目:
終了
上記サンプルコードは、Aurora Push 公式でアプリを作成する際に自動生成されますウェブサイト フレームワークを分析した後、それを自分のアプリケーションに移植する方法が大体わかりました。次のセクションでは、それを変更して自分のデモ プログラムに移植します。
/*************************************************** * ************************************************※原文、転載時はURLを明記してください: http://blog.csdn.net/mybelief321/article/details/45458863
※Luyang Hi-Tech Studio
* ウェブサイトアドレス: www.bigbearking.com
* 業務提携 QQ: 1519190237
* 事業範囲: ウェブサイト構築、デスクトップソフトウェア開発、AndroidIOS 開発、画像およびフィルムの後処理、PCBデザイン
********************************************* ***** ******************************************** *****/