Android 7 Nougatで猫を収集する(だけでなく)

アーデントAndroidファンは、イースターエッグがシステムに隠れていることを知っています。 Nougatと呼ばれる7番目のバージョンも例外ではありませんでした。 その中で、あなたは猫を集めるためにゲームを起動することができます。 時折、空のボウルに御treat走を入れて、来た猫を捕まえる必要があります。



イースターエッグをアクティブにするプロセスについては、ブログで詳しく説明されています。ここでは、内部にあるものについて説明します。



ゲームでは、猫は3桁の数字で表示されます。 理論的には、猫は000から999までの1000個です(実際には、プログラムは別のアルゴリズムを使用しますが、これは重要ではありません)。



それらがアプリケーションにどのように保存されるのか疑問に思っていました。 インターネットで検索した結果、 イースターエッグのソースコードが配置されているリソースに移動しました。



後でGithubで、Android 7だけでなく、あらゆるデバイスで通常のアプリケーションとしてゲームを実行できるようにする修正コードを見つけました。これらのソースからのアセンブルバージョンは、 Neko Collectorキーワードを使用してGoogle Playで見つけることができます。



2番目の例は、イースターエッグをアクティブにするための余分なコードがないため、勉強するのに便利です。これは必要ありません。



主な魔法が猫のクラスで起こると推測することは難しくありませんでした。



口ひげ、足、尾-これらは私の文書です



猫は別の写真としてアプリケーションに保存されないことが判明しました。 当然のことながら、多数の画像がプログラムを膨張させます。 描画可能なフォルダーには、猫の別々の部分がベクターリソースとして保存されます。 たとえば、これはテールがtail.xmlファイルに保存される方法です。









足、目、胴体、襟、弓なども同様に保存されます。 そして、すべてCatPartsコンストラクターで組み立てられます



CatParts(Context context) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { body = context.getDrawable(R.drawable.body); head = context.getDrawable(R.drawable.head); leg1 = context.getDrawable(R.drawable.leg1); leg2 = context.getDrawable(R.drawable.leg2); leg3 = context.getDrawable(R.drawable.leg3); leg4 = context.getDrawable(R.drawable.leg4); tail = context.getDrawable(R.drawable.tail); leftEar = context.getDrawable(R.drawable.left_ear); rightEar = context.getDrawable(R.drawable.right_ear); rightEarInside = context.getDrawable(R.drawable.right_ear_inside); leftEarInside = context.getDrawable(R.drawable.left_ear_inside); faceSpot = context.getDrawable(R.drawable.face_spot); cap = context.getDrawable(R.drawable.cap); mouth = context.getDrawable(R.drawable.mouth); foot4 = context.getDrawable(R.drawable.foot4); foot3 = context.getDrawable(R.drawable.foot3); foot1 = context.getDrawable(R.drawable.foot1); foot2 = context.getDrawable(R.drawable.foot2); leg2Shadow = context.getDrawable(R.drawable.leg2_shadow); tailShadow = context.getDrawable(R.drawable.tail_shadow); tailCap = context.getDrawable(R.drawable.tail_cap); belly = context.getDrawable(R.drawable.belly); back = context.getDrawable(R.drawable.back); rightEye = context.getDrawable(R.drawable.right_eye); leftEye = context.getDrawable(R.drawable.left_eye); nose = context.getDrawable(R.drawable.nose); collar = context.getDrawable(R.drawable.collar); bowtie = context.getDrawable(R.drawable.bowtie); } else { //      } drawingOrder = getDrawingOrder(); }
      
      





ベクターには塗りつぶしを即座に変更する素晴らしい機能があるため、色をランダムに選択し、ユニークな猫を生成します。 主なことは無理をしないことです。 1本の足を黒、2本目の足を茶色に塗らないでください。



プログラムを通常モードで実行すると、猫の収集は何時間もかかります。 したがって、間隔の原因となるコードを1秒に設定して置き換えます。 すぐに画面いっぱいに。









アプリケーションコードを掘り下げ、他の方法を学ぶ価値は間違いありません。 たとえば、ソーシャルネットワークでキャッチされた猫を共有する場合、Android 6.0 Marshmallow以上のデバイスで、解像度が良い512x512サイズの別のPNG画像が生成されます。 古いデバイスでは、別の方法で画像が形成され、画像がぼやけます。



比較のため、Android 7エミュレーターで最初に撮った写真。









これは、Android 4.4.2デバイスで撮影した写真です









Androidプログラミングを勉強している人は、JobShedulerスケジューラーの登録、サービスの開始、ダイアログの作成、SharedPreferencesの使用が役立つと思うでしょう。



私の意見では、イースターエッグは美しくなり、元気づけられました。

猫を集めよう!



All Articles