2013-07-04 2 views
0

Android 휴대 전화를 스캔하여 어떤 앱이 어떤 라이브러리를 사용하는지 알 수있는 특정 앱이 있음을 발견했습니다. 예 :다른 앱 사용 NDK/지원 라이브러리/타사 라이브러리 사용 여부

Facebook은 Android NDK, Android Supporting Library, Google Cloud Messaging을 사용하고 있습니다.

내 생각 엔 그들이 같은 패키지 매니저, ApplicationInfo, ActivityInfo을 API를 사용했을 수 있다는 것이다 등 등

어쨌든 나는 그들이 결과를 얻을하는 데 사용한 특정하는 API 확실하지 않다. 그들이 어떻게 한거야?

답변

0

앱이 'Android Supporting Library'를 사용하는지 여부는 알 수 없지만 나머지는 ... PackageManager을 살펴보세요. 관리자의 참조를 받으면 설치된 앱에 대한 정보를 얻을 수 있습니다.

PackageManager packageManager = getPackageManager(); 
List<PackageInfo> packages = packageManager.getInstalledPackages(0); 
for(PackageInfo package : packages){ 
    String[] permissions = packageInfo.requestedPermissions; 
    // knowing permission you can conclude, what does app uses: 
    // GCM - com.google.android.c2dm.permission.RECEIVE is required 
    // ... 

    ApplicationInfo app = package.applicationInfo; 
    String apth = app.nativeLibraryDir; 
    // based on this information you can conclude whether app uses NDK 
}