Android应用中你不得不知的事儿

一、applicationId 与包名

见 https://blog.csdn.net/jinrall/article/details/53465403
总结来说 applicationId 与包名 在默认情况下是相同的。但是可以在moudle层的build.gradle中定义applicationId。

而 this.getApplicationContext()..getPackageName() 、android.app.ActivityThread.currentPackageName得到的都是applicationId。

public void getPackages() {
    int flag = PackageManager.MATCH_UNINSTALLED_PACKAGES;
    PackageManager packageManager = getPackageManager();
    List<PackageInfo> installedPackages = packageManager.getInstalledPackages(flag);
    for (PackageInfo installedPackage : installedPackages) {
        Log.d(TAG, "packagename = " + installedPackage.packageName);
    }
}

public void getApplications() {
    int flag = PackageManager.MATCH_UNINSTALLED_PACKAGES;
    PackageManager packageManager = getPackageManager();
    List<ApplicationInfo> listApplications = packageManager.getInstalledApplications(flag);
    Collections.sort(listApplications, new ApplicationInfo.DisplayNameComparator(packageManager));
    for (ApplicationInfo info : listApplications) {
        Log.i(TAG, "packagename = " + info.packageName);
    }
}

如上获取安装到手机上所有应用包名其实也是applicationId。

二、判断应用是否为debuggable

见 https://www.cnblogs.com/zhujiabin/p/6874508.html

最优的方法是通过 context.getApplicationInfo().flags & ApplicationInfo.FLAGE_DEBUGGABLE != 0 来判断是否为 debuggable

其中ApplicationInfo.FLAGE_DEBUGGABLE 值为2 (0x00000002), 即flags里的第二位表示应用的debuggable

参见:https://developer.android.com/reference/android/content/pm/ApplicationInfo

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值