Nougat および abforce サブモジュールの Xowned フレームワークの説明

この記事では、rovo89 の次期 Xused for Nougat リリースと、Nougat で利用可能な現在の実装の違いについて説明します。

Xused フレームワークは、Android デバイスをカスタマイズするための主要な方法であり、ほぼすべてのデバイスと互換性があり、モジュールを簡単にインストールして事実上あらゆる詳細を調整できます。

カスタム ROM をフラッシュすることなく、カスタム ROM が提供するすべての機能を利用したいですか?重力ボックス またはXタッチウィズ そうします。 特定のアプリの DPI を変更するなど、アプリごとに特定の設定を微調整したいですか?アプリの設定 あなたはカバーしていますか? アプリケーションの開発者が、Google のように特定の機能を追加することを考えていたらいいのにハングアウトをパーソナライズする または Facebook を使用すると、気に入った Instagram の投稿をダウンロードする? Xused を使用すると、開発者はほとんどすべてのものを変更できるため、その必要はありません。 カスタム ROM を必要とするシステム全体の機能か、特定の機能の微調整が必​​要です 応用。

Xused フレームワークには、開発者にとって大きな利点があります。それは、(ROM 調整のために AOSP をコンパイルしたり、Smali コードを編集したりする必要があるのと比較して) 開発が容易であることです。 また、ユーザーにとっても次のような大きなメリットがあります。 利便性、 探しているすべての機能を提供する ROM を見つけてフラッシュする必要がなくなりました。 (代わりに、安定性と安定性の目標バランスに加えて、独立したモジュールを組み合わせて適合させることができます) パフォーマンス。 また、 アプリケーションの調整 異なる署名を処理する必要がないため、はるかに簡単です。その結果、ユーザーは元の署名をアンインストールする必要があります。 アプリケーションが署名をチェックするときに、バージョンを確認したり、特定のフープを飛び越えたりします (変更された YouTube クライアントが処理するもの、 実例)。

唯一の問題? その性質と自由時間の多さにより、Xowned の開発者 (弊社の上級認定開発者、ロボ89) があるため、Android のリリースに遅れることがよくあります。

Lollipop をサポートするように更新されるまでに約 4 か月かかりました、ヌガーに至るまで約1年かかります。 考えてみれば、これは思っているほど悪いことではありません 実際に Nougat を使用している Android ユーザーは何人ですか (約13.5%ただし、Android 愛好家、つまり Xused のターゲット ユーザーも Nougat を使用する可能性が高いことに留意してください)。 ただし、お気に入りの Xused モジュールを使用しながら、最新かつ最高の Android バージョンを同時に使用できないのは、依然として非常に煩わしい場合があります。

Xused フレームワークのソース コードが利用可能になったため (少なくとも安定したリリースされたバージョンでは)、開発者は我慢する そこで、rovo89 の修正の一部を Nougat に移植できないか試してみることにしました。 別のよりシンプルなアプローチを選択することで、abforce は基本的に、実際に機能する Xused の部分を適応させました。 インストールすると魔法が実行され、独自の ROM をコンパイルするときにそれを含めることができるようになります (その後、 他の回避策が浮上). このアプローチはおそらく非常に異なっています それは、誰もが簡単に利用できるという Xused の核となる利点の 1 つを無視しているからです。 ただし、あらゆる進歩は歓迎され、複数の責任者がタスクに取り組むことで有利になり、新たな洞察が得られる場合があります。 私たちが考える主な問題は、この開発に関する誤った情報 (他の「開発者」や一部のブログによって広められたもの) と、コミュニティによる反応の一部です。 この記事で全体像がより明確になることを願っています。


まず第一に、公式の Xused フレームワークと abforce のバージョンに導入された、そして現在も導入されている作業を理解するために、フレームワークがどのように機能するかを調べる必要があります。 フレームワーク自体はありますが、 プロジェクトの一部にすぎません, 通常、フレームワークとインストーラーの両方を意味します ユニバーサル インストーラーがなければフレームワークの利点の多くが失われるため、それには多くの労力がかかります。

Xused のパワーは、シンプルなコンセプトから来ています。どのメソッドも「フック」できるということです (メソッドは小さいものです)。 任意のプログラムを構成する部分)を使用して、その前、後、またはその代わりに Xused モジュールのコードを実行させます。 それ。 簡単な例を見てみましょう。メニュー ボタンをクリックすると Instagram が「showMenuOptions」というメソッドを使用し、そのメソッドが「レポート」ボタンと「共有」ボタンの表示を処理するとします。 Xused モジュールを作成すると、そのメソッドを変更して、たとえば画像を共有する代わりにダウンロードするボタンを追加できます。 変更は単純な調整から多岐にわたります (例: Play ストアの変更ログ)から大規模なオーバーホール(など) 重力ボックス、カスタム ROM が持つすべての機能を提供することを目的としています)。

これにより Xused は強力になりますが、それは方程式の一部にすぎません。 他の部分は、汎用性、つまり実際に (サポートされている Android バージョンを備えた) ほぼすべてのデバイスで Xused を使用できること、そして使いやすさです。 ユーザーがしなければならないことは、インストーラーを入手することだけです。インストーラーは魔法を実行し、システムに動的にパッチを適用して Xused を統合します。 モジュールを適用するには、モジュールをインストールし、有効にして再起動するだけです。 面倒な作業は必要なく、カスタム ROM をフラッシュする必要もありません (特にカスタム ROM が常に実行可能な選択肢ではない場合)、異なる署名で署名された別の APK をインストールするために APK をアンインストールする必要もありません。 必要なのは root だけです (カスタム ROM を使用することは絶対に可能であり、多くの場合、それは理にかなっています。 ただし、Xused はカスタム ROM が提供できるほとんどの機能を提供できますが、それを超えた機能もあります)。

ただし、このシンプルさの裏には多くの作業が必要です。

  1. モジュール開発者にとって、提供される API は安定しており、動作が保証されている必要があります。 Xused フレームワークは、特定の ROM やフックの組み合わせでランダムに失敗することはありません (例外的な場合を除く)。 言い換えれば、ユーザーが問題を抱えている場合、その問題はユーザーのせいであるか、またはユーザーのせいである必要があります。 何かを正しくインストール/有効化した場合)、またはモジュール開発者のせい(モジュールにバグがあるため) モジュール)。 しかし、フレームワーク自体が意図したとおりに動作しており、ユーザーをイライラさせたり開発者を混乱させたりするようなエラーの原因ではないことはほぼ確実です。
  2. ユーザーにとって、フレームワークはデバイスと ROM に簡単にインストールできる必要があります最新バージョンの TouchWiz を実行している Samsung または LineageOS がインストールされた Nexus を所有しているかどうかは関係ありません。 Xused インストーラーは、これらすべてを舞台裏で処理します。 さまざまなデバイスと ROM の組み合わせでインストーラーとフレームワークをテストするには、多くの作業を行う必要があります。 多くの場合、OEM による実装の違いが原因でエラーが見つかるため、すべてのユーザーの信頼性を確保するには修正する必要があります。
  3. Android のメジャー リビジョンは大きな変更をもたらす場合があり、その変更に適応するにはフレームワークのアーキテクチャの一部を再考する必要があります。 場合によっては、新しいバージョンで追加の機会が浮上し、より良い製品を開発するために余分な時間が必要になることもあります。 たとえば、ART が最初に導入されたとき、フックが正しく機能するように、Xused を使用すると特定の最適化が無効になりました。 ヌガーの場合、ジャストインタイム (JIT) コンパイラ ~する機会をもたらすそれらの最適化を維持する.

上記の作業の多くは細かい部分にまで及び、フレームワークの大部分は意図したとおりに機能していますが、 不一致や軽微な問題があると、ユーザーにとっては使用が賭けとなり、モジュールのサポートと開発は悪夢になります。 開発者。 しかし、リリースされた製品は、誰もが驚くことなく使えることを目指しています。 もちろん、一部の OEM の変更には適応するためにより多くの努力が必要となるため、例外もありますが、 マイナーなものであり、大多数のユーザー (および開発者) は安定した信頼性の高い Xused を楽しむことができます。 経験。 発生した例外はすべて文書化されます明確な免責事項 誰も驚かないように。

上記を念頭に置いて、rovo89 の Xused に対するビジョンは、ユーザーと開発者に信頼性が高く使いやすいコントラクトを提供する安定したソリューションとなることです。 彼の哲学は、あなたがそれに同意しないかもしれませんが、シンプルで理解できるものです。 意図したとおりに使用する準備ができたら解放します。その前に解放すると、より多くの問題が発生するためです。 利点。


abforce の Nougat 用 Xused ART サブモジュール

私たちは、abforce の作品を「ポート」または「非公式 Xped」と呼ぶことには抵抗があります。これは不正確で誤解を招くためです。 これまで見てきたように、Xused には 2 つの主要なコンポーネントがあります。

  1. Xused フレームワーク自体のコアであり、メソッドをフックする魔法を処理します。
  2. Xused インストーラー。フレームワークをすべてのデバイスに簡単に正しくインストールできるようにします。

abforce が行ったのは、カスタム ROM のコンパイル中に変更をベイクする必要がある方法で、rovo89 の最初の部分 (Xused フレームワークのみ) の Marshmallow コードを Nougat に移植することでした。 それに加えて、フレームワークの多くのマイナーな (しかし重要な) 部分が Nougat に完全には適合していません。 そのため、動作に一貫性がなくなる可能性がありますが、ほとんどの場合は機能します (ただし、 ないのためにみんな)、信頼性がありません。 モジュール開発者とユーザーにとって、不完全で一貫性のない実装に依存することは、単に 関係者全員に悪い経験を与える、 と 一部のモジュールがまったく機能しないか、デバイスが起動しなくなる. 多くのユーザーは問題なく使用できるかもしれませんが、 何もないよりは何か、開発者の視点は依然として完全に理解できます(特に、免責条項があっても偽のサポート質問や愚痴を止められるわけではないことを念頭に置いている場合)。

(上記の 2 つの主要な点に加えて、Nougat で導入された変更を利用するために、最終的な公式 Xused フレームワークへのさらなる変更も期待されます。)

ほとんどの人が単に話すだけで満足していたときに、abforce が素晴らしい仕事をしたことは注目に値します。しかし、彼の作品は完全な Xowned エクスペリエンスからはほど遠いものであり、開発者やブログはそれ以外のことを主張していません (絶対に肯定的ではありません。 繰り返しになりますが、私たちはこれに実際の作業と労力を費やしているすべての実際の開発者に対して敬意しかありません)。 実際、後で少し触れますが、コミュニティの一部の反応 (ユーザーであれ「開発者」であれ) が、この一連の開発の中で唯一厄介な部分です。


話を省略して本題に入りましょう。どんなコミュニティにも悪い要素や側面はあります。 Android 愛好家と同じくらい大きなコミュニティでは、悪い要素はほんの一部であるにもかかわらず、大きな部分を占めているように見えるかもしれません (かなり大きいですが、相対的にはまだ少数です)。 しかし、表面的には、Xused for Nougat の開発に対するコミュニティの反応の多くは、非常に幼稚で、配慮がなく、無責任なものでした。

最初の大きな問題は、Nougat のリリースまでに時間がかかりすぎるため、「Xused の死」に関して多くの人が示した見下した態度です。 これはrovo89にもかかわらずです アップデートそして保証、そして、ARTの初期バージョンが導入されたときに、Lollipopでほぼ正確なシナリオが起こったにもかかわらず。 Xused の使用をやめるのは問題ありませんが、誰かの能力を侮辱したり、異なる哲学を持っていることや、フラッシュのニーズがすぐに満たされないことを理由に他の人を攻撃したりすることはできません。 これは、開発者が開発方法論とその背後にある理由を表明している完全に無料のプロジェクトの場合にはさらに当てはまります。

コミュニティの反応に関するもう 1 つの問題は、abforce の仕事の性質を誤解していることであり、多くの人がそれを新しい Xused として称賛したり、Nougat のポートとして宣伝したりしています。 これに関する大きな問題は、「開発者」が免責条項がなかったため、欠点を理解せず(または気にせず)、フラッシュ可能なバージョンの提供を急いでいることにあります。 いくつかのスレッドではまったくその内容が提供されておらず、rovo89 (Xused の作業の大部分を支えている) ではなく abforce の功績を称えるところまであるものもあります。 貢献者。

最後に、rovo89 の開発哲学をもう一度取り上げる必要があると感じています。 多くの声高なユーザーが、最新の変更をオープンソースにすることが有益であると主張しています。 これは理論的には良さそうですが、実際にはそれほど簡単ではありません 特に rovo89 の説明を考慮すると、次のようになります。

[...] 現状を押し出すだけではプロジェクトはうまくいかないと思います。 おそらく、コードをコンパイルした人々によって「何らかの」リリースが非常に迅速に行われることになるでしょう。 彼らが気づいていないであろう問題ややるべきことにもかかわらず、問題なく動作し、それを「彼らのポート」として公開します の。 わがままと言われても仕方がありませんが、そんな中途半端なリリースは見たくありません。[ソース]

実際、これは現在の状況をかなり正確に予測していることが証明されており、数人の「開発者」がこの予測を適用しました。 abforce の変更と、警告が最小限またはまったくなく、クレジットが不完全なフラッシュ可能な ZIP を提供していますが、すべて要求しています。 寄付。


これらの説明によってあなたの疑問が解消され、潜在的な誤解が解消されたことを願っています。 Xused は、私たちの愛好家やフラッシュ中毒のコミュニティの大部分に到達した素晴らしいプロジェクトであり、Xused for Nougat はチャンスに満ちたもう 1 つの巨大なマイルストーンとなるはずです。 GravityBox のようなモジュールを使用する すでに Nougat サポートを提供していますが、rovo89 の完成したプロジェクトは多数のオプションに戻ることになります。


Nougat ROM 上の Xused に興奮していますか? コメントでお知らせください!