Android代码,如何实现将本机已安装的应用进行分类,例如列出游戏类,工具类
请教各位,能否提供思路,或已有过类似开发,提供下具体实现方式。
目前已经想到:
①列出所有包名和应用名②上传至服务器,服务器通过应用名到各大安卓市场进行模拟请求。返回相应类目
但是想到这样子效率很低,如果APP很多,速度会非常慢,匹配也很难做到100%精确。
PS:正在开发的一款工具软件,是面向国外市场。很多应用国内市场的分发渠道没有,只能通过google play 或者其他国外第三方应用分发平台。
认证高级PHP讲师
こんにちは、Android 側でこれを実装するのは難しくないと思いますが、難しいのはサーバー側です。
Androidが行う作業は、端末にインストールされているアプリの情報を収集してサーバーにアップロードするだけで、サーバーはアプリの詳細情報を返します(サーバーの作り方はこちら)情報をより効率的に返します。これについては後で説明します)、情報を表示します。
サーバーがクライアントのリクエストを受け取った後、アプリケーション名とパッケージ名を介して主要な市場への詳細情報のクエリを開始するだけの場合、効率は非常に低くなります。最良の方法は、主要な市場をクロールするクローラーを取得することです。時々、特定のデータを事前にキャッシュして、基本的にクライアントのリクエストにリアルタイムで応答できるようにします。いくつかのアプリの値下げ監視製品についてご存知かどうかはわかりませんが、基本的には同じ考えを持っています。重要な点は、このクローラ アルゴリズムを実装する方法です。サーバーの負荷、ターゲット サーバーのクローラ対策戦略、およびキャッシュされたデータの有効期間を考慮する必要があります。人気に応じてさまざまな戦略が存在します。アプリケーションのことですよね?したがって、このアルゴリズムの開発がプロジェクト全体の最優先事項であると感じています。
一部のアプリケーションでは、アプリケーション名は同じですが、パッケージ名が一致していない場合があります。たとえば、あるパッケージ名が国内市場で使用されているのに、別のパッケージ名が Google Play に送信される場合もあります。これにも注意する必要があります。
私が思いつくアイデアは、アプリケーションのパッケージ名を取得し、それを分析のためにバックエンド サーバーにアップロードすることです。結局のところ、アプリケーション自体には、それが属するカテゴリを記録する情報がありません。
上記の回答はどれも非常に優れており、そこから学ぶことができます。あなた自身の考えも正しいです。私の答えも同様です。アプリケーション自体に関しては、現時点では「ゲーム」、「ニュース」、「ソーシャル」などの識別属性はありません。これらはすべて同じアプリケーションであり、それらの属性をカテゴリに分類することで実現します。あなたが言ったこと 物事は「人」、特にアプリケーションビッグデータ(アプリケーションパッケージ名など)の人工的な収集に依存する必要があります。この部分は、主要なアプリケーションストアでアプリケーションをクロールするためにクローラーによってクロールされます。 -scale アプリケーション ストア、およびほとんどのアプリケーション 同じパッケージ名が異なるストアで維持されます。次にデータを分類(いわゆるゲーム、SNSなど)すると、言うのは簡単ですが、すでに膨大な気がしませんか?アプリストアとほぼ同じですか?本当に大きいと感じます。事前のデータ準備は非常に重要であり、報告されたアプリケーションがバックエンドの対応する分類と確実に一致するように、十分なデータが必要です。クライアントに関しては、そのような複雑な作業は実行できません。クライアントは、携帯電話上のアプリケーションをスキャンしてレポートし、バックエンドから分類フィードバックを受け取るだけです。しかし、新しくリリースされたアプリケーションが必ずしも機密扱いであるとは限らない (または機密扱いでないものを受け入れることもできます) という問題もあります。今のところ思いつくのはこれだけです。
こんにちは、Android 側でこれを実装するのは難しくないと思いますが、難しいのはサーバー側です。
Android クライアントが動作中
Androidが行う作業は、端末にインストールされているアプリの情報を収集してサーバーにアップロードするだけで、サーバーはアプリの詳細情報を返します(サーバーの作り方はこちら)情報をより効率的に返します。これについては後で説明します)、情報を表示します。
サーバー側の作業
サーバーがクライアントのリクエストを受け取った後、アプリケーション名とパッケージ名を介して主要な市場への詳細情報のクエリを開始するだけの場合、効率は非常に低くなります。最良の方法は、主要な市場をクロールするクローラーを取得することです。時々、特定のデータを事前にキャッシュして、基本的にクライアントのリクエストにリアルタイムで応答できるようにします。いくつかのアプリの値下げ監視製品についてご存知かどうかはわかりませんが、基本的には同じ考えを持っています。重要な点は、このクローラ アルゴリズムを実装する方法です。サーバーの負荷、ターゲット サーバーのクローラ対策戦略、およびキャッシュされたデータの有効期間を考慮する必要があります。人気に応じてさまざまな戦略が存在します。アプリケーションのことですよね?したがって、このアルゴリズムの開発がプロジェクト全体の最優先事項であると感じています。
一部のアプリケーションでは、アプリケーション名は同じですが、パッケージ名が一致していない場合があります。たとえば、あるパッケージ名が国内市場で使用されているのに、別のパッケージ名が Google Play に送信される場合もあります。これにも注意する必要があります。
私が思いつくアイデアは、アプリケーションのパッケージ名を取得し、それを分析のためにバックエンド サーバーにアップロードすることです。結局のところ、アプリケーション自体には、それが属するカテゴリを記録する情報がありません。
上記の回答はどれも非常に優れており、そこから学ぶことができます。あなた自身の考えも正しいです。私の答えも同様です。アプリケーション自体に関しては、現時点では「ゲーム」、「ニュース」、「ソーシャル」などの識別属性はありません。これらはすべて同じアプリケーションであり、それらの属性をカテゴリに分類することで実現します。あなたが言ったこと 物事は「人」、特にアプリケーションビッグデータ(アプリケーションパッケージ名など)の人工的な収集に依存する必要があります。この部分は、主要なアプリケーションストアでアプリケーションをクロールするためにクローラーによってクロールされます。 -scale アプリケーション ストア、およびほとんどのアプリケーション 同じパッケージ名が異なるストアで維持されます。次にデータを分類(いわゆるゲーム、SNSなど)すると、言うのは簡単ですが、すでに膨大な気がしませんか?アプリストアとほぼ同じですか?本当に大きいと感じます。事前のデータ準備は非常に重要であり、報告されたアプリケーションがバックエンドの対応する分類と確実に一致するように、十分なデータが必要です。クライアントに関しては、そのような複雑な作業は実行できません。クライアントは、携帯電話上のアプリケーションをスキャンしてレポートし、バックエンドから分類フィードバックを受け取るだけです。しかし、新しくリリースされたアプリケーションが必ずしも機密扱いであるとは限らない (または機密扱いでないものを受け入れることもできます) という問題もあります。今のところ思いつくのはこれだけです。