当前位置: 首页 > news >正文

自己做烘焙的网站东莞百度推广排名优化

自己做烘焙的网站,东莞百度推广排名优化,做试试彩网站,做网站需要学php哪些技术一、环境 高通 Android 13 注:Android10 和Android13有些差异,代码位置不变,参照修改即可 二、pm简单介绍 pm工具为包管理(package manager)的简称 可以使用pm工具来执行应用的安装和查询应用宝的信息、系统权限、…

一、环境

高通 Android 13

注:Android10 和Android13有些差异,代码位置不变,参照修改即可

二、pm简单介绍

pm工具为包管理(package manager)的简称

可以使用pm工具来执行应用的安装和查询应用宝的信息、系统权限、控制应用

pm工具是Android开发与测试过程中必不可少的工具,shell命令格式如下:

pm <command>

kona:/ # which pm
/system/bin/pm
kona:/ # 
kona:/ # file system/bin/pm
system/bin/pm: /system/bin/sh script

三、pm命令对应的源码位置如下

frameworks/base/services/core/java/com/android/server/pm/PackageManagerShellCommand.java 

这里通过修改源码,达到以下两个效果:

1、pm list packages -3 返回详细应用信息;2、pm install 返回包名和启动Activity

源码修改:

@@ -145,6 +145,11 @@ import java.util.concurrent.CountDownLatch;import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.TimeUnit;+import android.app.usage.StorageStats;
+import android.app.usage.StorageStatsManager;
+import java.util.UUID;
+import java.util.HashSet;
+class PackageManagerShellCommand extends ShellCommand {/** Path for streaming APK content */private static final String STDIN_PATH = "-";
@@ -623,6 +628,7 @@ class PackageManagerShellCommand extends ShellCommand {null /* splitApkPaths */, null /* splitRevisionCodes */,apkLite.getTargetSdkVersion(), null /* requiredSplitTypes */,null /* splitTypes */);
+                params.sessionParams.setAppPackageName(pkgLite.getPackageName());sessionSize += InstallLocationUtils.calculateInstalledSize(pkgLite,params.sessionParams.abiOverride, fd.getFileDescriptor());} catch (IOException e) {
@@ -842,7 +848,7 @@ class PackageManagerShellCommand extends ShellCommand {}private int runListPackages(boolean showSourceDir, boolean showSdks) throws RemoteException {
-        final String prefix = showSdks ? "sdk:" : "package:";
+        final String prefix = showSdks ? "sdk:" : "PackageName:";final PrintWriter pw = getOutPrintWriter();int getFlags = 0;boolean listDisabled = false, listEnabled = false;
@@ -985,7 +991,7 @@ class PackageManagerShellCommand extends ShellCommand {stringBuilder.append(info.applicationInfo.sourceDir);stringBuilder.append("=");}
-                stringBuilder.append(name);
+                stringBuilder.append(name+ ";");if (showVersionCode) {stringBuilder.append(" versionCode:");if (info.applicationInfo != null) {
@@ -998,6 +1004,47 @@ class PackageManagerShellCommand extends ShellCommand {stringBuilder.append("  installer=");stringBuilder.append(mInterface.getInstallerPackageName(info.packageName));}
+
+
+
+                if (listThirdParty) {
+                    stringBuilder.append(" Activity:");
+                    stringBuilder.append(getClassName(info.packageName) + ";");
+
+                    stringBuilder.append(" Label:");
+                    stringBuilder.append(mContext.getPackageManager().getApplicationLabel(info.applicationInfo) + ";");
+                    
+                    //app size
+                    String sourceDir = info.applicationInfo.sourceDir;
+                    StorageStatsManager storageStatsManager = (StorageStatsManager) mContext.getSystemService(Context.STORAGE_STATS_SERVICE);
+                    StorageManager storageManager = (StorageManager) mContext.getSystemService(Context.STORAGE_SERVICE);
+                    StorageStats storageStats =null;
+                    try{
+                        UUID uuid = storageManager.getUuidForPath(new File(sourceDir));
+                        storageStats = storageStatsManager.queryStatsForPackage(uuid, info.packageName,UserHandle.getUserHandleForUid(info.applicationInfo.uid));
+                    }catch(IOException e){
+                        e.printStackTrace();
+                    }catch(NameNotFoundException e){
+                        e.printStackTrace();
+                    }
+                    if(storageStats != null) {
+                    long appSize = storageStats.getAppBytes() + storageStats.getCacheBytes() + storageStats.getDataBytes();
+                 
+                    stringBuilder.append(" Size:");
+                    stringBuilder.append(appSize + ";");
+                    }
+    
+                    //version name
+                    stringBuilder.append(" VersionName:");
+                    stringBuilder.append(info.versionName + ";");
+
+                    //Uid
+                    stringBuilder.append(" Uid:");
+                    stringBuilder.append( info.applicationInfo.uid + ";");
+    
+                }
+
+List<String> uids = out.computeIfAbsent(stringBuilder.toString(), k -> new ArrayList<>());
@@ -1006,6 +1053,7 @@ class PackageManagerShellCommand extends ShellCommand {}}}
+for (Map.Entry<String, List<String>> entry : out.entrySet()) {pw.print(entry.getKey());List<String> uids = entry.getValue();
@@ -1018,6 +1066,58 @@ class PackageManagerShellCommand extends ShellCommand {return 0;}+
+    private String getClassName(String packageName){
+        try {
+            Intent intent = new Intent();
+            Intent baseIntent = intent;
+
+            baseIntent = new Intent(Intent.ACTION_MAIN);
+            baseIntent.addCategory(Intent.CATEGORY_LAUNCHER);
+            baseIntent.setPackage(packageName);
+
+            if (baseIntent != null) {
+                Bundle extras = intent.getExtras();
+                intent.replaceExtras((Bundle) null);
+                Bundle uriExtras = baseIntent.getExtras();
+                baseIntent.replaceExtras((Bundle) null);
+                if (intent.getAction() != null && baseIntent.getCategories() != null) {
+                    HashSet<String> cats = new HashSet<String>(baseIntent.getCategories());
+                    for (String c : cats) {
+                        baseIntent.removeCategory(c);
+                    }
+                }
+                intent.fillIn(baseIntent, Intent.FILL_IN_COMPONENT | Intent.FILL_IN_SELECTOR);
+                if (extras == null) {
+                    extras = uriExtras;
+                } else if (uriExtras != null) {
+                    uriExtras.putAll(extras);
+                    extras = uriExtras;
+                }
+                intent.replaceExtras(extras);
+            }
+
+            mTargetUser = ActivityManager.handleIncomingUser(Binder.getCallingPid(),
+                    Binder.getCallingUid(), mTargetUser, false, false, null, null);
+
+            ResolveInfo ri = mInterface.resolveIntent(intent, intent.getType(), mQueryFlags,
+                    mTargetUser);
+	    if(ri != null && ri.activityInfo.name != null){
+	    return ri.activityInfo.name;
+	    }else{
+            return "NULL";
+	 }
+        } catch (RemoteException e) {
+            throw new RuntimeException("Failed calling service", e);
+        } catch (Exception e){
+            throw new RuntimeException(e.getMessage(), e);
+        }
+    }
+
+
+
+
+private int runListPermissionGroups() throws RemoteException {final PrintWriter pw = getOutPrintWriter();final List<PermissionGroupInfo> pgs = mPermissionManager.getAllPermissionGroups(0);
@@ -1464,6 +1564,14 @@ class PackageManagerShellCommand extends ShellCommand {}abandonSession = false;//pm install 时,返回指定格式
+            if (params.sessionParams.appPackageName != null) {
+                if (getClassName(params.sessionParams.appPackageName) != null){
+                    pw.print(params.sessionParams.appPackageName);
+                    pw.println("/" + getClassName(params.sessionParams.appPackageName));
+                }
+            }
+
+if (params.sessionParams.isStaged && params.stagedReadyTimeoutMs > 0) {return doWaitForStagedSessionReady(sessionId, params.stagedReadyTimeoutMs, pw);}

http://www.zhongyajixie.com/news/60988.html

相关文章:

  • 网络整合营销案例太原seo网络优化招聘网
  • 重庆梁平网站建设公司电脑系统优化软件十大排名
  • 外国类似黄色网站苏州关键词排名提升
  • app与网站的区别是什么站长资讯
  • 做网站在市场营销策划ppt
  • 4网站建设哪里好点网站维护工作内容
  • 怎么做新网站淘宝流量平台
  • 徐州cms建站模板营销推广ppt
  • 怎么直接做免费网站关键词优化举例
  • 中方建设局网站灰色行业推广渠道
  • 百度网站怎么做的赚钱优秀网站网页设计图片
  • seo网站设计多少钱网站建设免费
  • 做自媒体的素材网站域名站长工具
  • 做新零售这些注册网站和找货源seo网站优化经理
  • 网站如何引导客户关于友情链接说法正确的是
  • 营销技巧视频讲座视频网站怎么优化到首页
  • 网站切图怎么切如何推广公司
  • 昆山网络公司哪家比较好上海免费关键词排名优化
  • 青岛做外贸网站建设今日头条新闻发布
  • 做外卖网站网站seo在线诊断
  • 网络服务器是什么上海优化公司排行榜
  • 企业网站设计推广方案百度网盘官网登录入口
  • 连云港做网站制作首选公司推广策略包括哪些内容
  • 网站如何做排名靠前广州最新发布最新
  • 申请个人网站需要多少钱搜索优化师
  • 能不能自己做视频网站企业网络推广的方法
  • 昆明做商城网站多少钱怎么开网站平台
  • 秦皇岛企业建设网站百度入口提交
  • 电子商务网站设计与实现汕头seo推广
  • 在线转格式网站怎么做免费推广链接