これは難しい問題です。ある時点でアプリに含まれていた SDK があるとします。このアプリはかなり前から市場に出回っていますが、SDK は最新バージョンから統合されています。そのため、顧客が SDK を含むアプリにアクセスするには、次の 2 つの方法があります。
- その人は以前にアプリを持っていなかったので、最新バージョンをダウンロードします
- その人は、SDK なしで古いバージョンのアプリを既にインストールしており、SDK を使用して新しいバージョンに更新しています。
アプリが初めて開かれたとき、SDK はアプリがインストールされたか更新されたかをどのように判断できるのでしょうか?
成功せずに私が考えたいくつかのこと:
アプリのインストール時に作成され、その時点から変更されていないファイルを検索できます。最終変更フィールドを調べるだけで、アプリがいつインストールされたかがわかります。lib-file は data/data/ で見つけましたが、アプリが更新されるたびに更新されるため、使用できません。編集: ファイルが変更されていないことをインポートする理由は、ファイルの作成時間にアクセスする方法がないためです。そのため、最終変更 == 作成時間であることを確認する必要があります
SDK は Android 1.6 と互換性があるはずなので、API 9 より前であり、PackageInfo.firstInstallTime フィールドにアクセスできません。
APK自体を見るためにデータ/アプリにアクセスできるとは思いませんが、できたとしても、アプリを更新するたびにAPKが置き換えられるため、last-modifiedは最終更新の時間を教えてくれます。インストールではありません。
ご協力いただきありがとうございます。