android 获取包名_android包名命名规则
2025-01-20 08:13 - 立有生活网
android 几个路径的获取
adb shell monkey -v -p your.package.name 500String appPath = getApplicationContext().getPackageResourcePath();
android 获取包名_android包名命名规则
android 获取包名_android包名命名规则
android 获取包名_android包名命名规则
-printcert -file META-INF/CERT.RSA
/data/app/com.younghare.lepusServ-2/base.apk
[- | -no] 是否备份系统getApplicationContext().getFilesDir()
getApplicationContext().getFilesDir().getParent()
其实就是/data/data/包(这是沙盒其他app无法访问)
String dataAppPath = getApplicationContext().getFilesDir().getParent();
抽象路径名的路径名字符串
String appAbsolute = getApplicationContext().getFilesDir().getAbsolutePath()
/data/user/0/com.younghare.lepusServ/files
获取CachDir
getApplicationContext().getCacheDir()
通过Context.getExternalCacheDir()方法可以获取到 SDCard/ android /data/你的应用包名/cache/目录,一般存放临时缓存数据
getApplicationContext().getExternalCacheDir()
getExternalFilesDir(null)参数传入的为null,这样默认访问的是files文件夹,我们可以指定子文件夹
AndroidStudio中获取SHA1
当我们需要知道--pct-rotation {+百分比}:4设备的分辨率时在移动应用开发的过程中,有时需要继承第三方的应用服务,大部分情况下都需要提供当前应用的包名和SHA1等信息以获取调用服务的token。下面将说明如何通过Androidstudio快速的获取SHA1信息。
adb shell setprop [key] [value]Androidstudio版本:
1、取消勾选Setting->Experimental 中Do not buildle task list during Gradle sync。否则在gradle窗口中提示Task list not build。
2、点击gradle->app->tasks->android->signingReport,生成如下界面,在界面上中包含了debug调试版的SHA1和realease发布版的SHA1
请问如何获取安卓正在前台运行的应用程序的包名?
adb shell procmem pid在framework中想添加这个功能,所以写了个appliction来实现一下获取正在运行的应用程序:
还是先看图吧: 这个app主要是简单的实现了获取非系统的应用程序和一些常用的系统应用程序,显示在一个listview中,并添加了点击(回复到你打开的界面)和长按(关闭应用程序)。 看看代码吧: 直接贴出来再加上注释吧(直接写在一个文件里): package andorid/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
android 能否判断是被哪个外部apk所启动
adb shell dumpsys window命令格式 adb shell am start -w 包名/启动名 或 adb shell am start -W -n package/activityAndroid 5.1 (API Ll 22) 之前,如果通过startActivity启动apk,需要传递一些标识参数给被启动的apk用于识别;如果通过startActivityForResult启动apk,被启动apk中可以通过getCallingPackageName获取启动apk的包名。
Android 5.1 开始Activity类增加了个方法叫做getReferrer(),可以用来判断外部apk的信息,不过文档介绍说 this is not a securi34、查看占用内存前6的appty feature。
Android开发中如何获取应用版本号
应用场景:
1、在界面中显示应用程序的版本号;
2、用户启动该应用,后台判断该应用是否是版本。
上述情景都需要在程序中自动获取到应用的版本号。
思路:
在Android中,应用程序的版本号是在AndroidManifest.xml文件中进行配置的,而PackageInfo类则封装了从该配置文件中获取的所有信息,描述了包内容的整体信息,因此,可以使用PackageInfo对象的versionName属性获取应用的版本号。
是PackageMar对象的获取,Context对象提供了getPackageMar()方法来获取该对象。
综上,模板代码如下:(注意,此处封装的方法位于某个Activity中,因此直接使用this来代替Context对象)
/
获取版本号
@return
当前应用的版本号
/
public
Sadb shell dumpsys statuartring
getVersion()
{try
{PackageMar
mar
=this.getPackageMar();
PackageInfo
主要目adb logcat -b radio的:测试app 是否会是否会Crash。
=mar.getPackageInfo(this.getPackageName(),
0);
String
version
=.versionName;
this.getString(R.string.version_name)
+version;
}catch
(Exception
e)
{e.printStackTrace();
this.getString(R.string.can_not_find_version_name);
}}
adb构成和工作原理和常用命令
F — 错误public static void parseSignature(byte[] signature)adb构成
adb工作原理
获取包名和界面名【应用】
文件传输
停止APP应用命令:adb shell am force-stop package
例:启动 com.android.settings程序并且进入主界面(.setttings)
adb shell am start -wadb shell ge -p com.android.settings/.setttings
获取手机日志
命令格式 adb logcat
例:当程序发生崩溃的时候,可以将日志信息发送给开发,便于迅速定位bug(E开头信息到txt)。
关于崩溃的处理,我们需要找日志中的at,前面个字符是E的就是错误信息。
Android Studio修改项目名称和包名方法
执行:adb shell monkey -p 包名 -v 1000 > /Users/weixiangyang/Desktop/monkey.txt平时项目开发中,有时候维护项目多,有的项目结构需要改变,这就需要我们去修改项目名称或者修改包名。下面介绍一下adb shell pm list packages怎样修改项目名称和包名。
1)打开项目根目录下的 setting.gradle 文件,修改该文件中的 rootProject.name='新项目名' ;
2)点击 Sync Now 重新编译项目;
★ 如果只是简单修改至此,会发现项目名称后依然备注着旧项目名,并没有更换新的项目名。紧接着下面作:
3)关闭 Android Studio;
4)修改项目所在路径的文件名为新的项目名;
★ 如果是 AS 4.0之后 的版本,修改至此就算修改完获取app启动时间成;如果是 AS 4.0之前 的版本,会出现一些配置文件信息还是引用原来的项目名,并没有更换为新的项目名。紧接着下面作:
6)找到项目根目录下的 xx.iml 文件,右键 Refactor —— Rename 打开修改编辑框;
7)输入新的项目名,点击 Refactor 修改;
8)打开项目根目录下的 xx.iml 文件,修改该文件中的 project.id 字段: external.linked.project.id="新项目名"
9)打开项目下 .idea/modules.xml 文件,修改该文件中的 file 和 filepath 字段:
10)点击 Rebuild Project 重构项目,即可修改完成项目名称。
1)选中项目中修改的包名;
2)更改项目结构显示方式,取消 Compact Middle Packages 选项;
3)右键要修改的包名,选择 Refactor —— Rename 打开修改编辑框;
4)点击 Rename package 修改包名;
5)输入新的包名,点击 Refactor 修改;
6)点击 Do Refactor 确定修改;
7)打开项目 app/main 目录下的 AndroidManifest.xml 文件,修改该文件中的 package="新包名" 字段;
8)修改项目 app 下的 build.gradle 中的 applicationId "新包名" 字段;
9)点击 Sync Now 同步,即可修改完成项目包名。
注意:
修改完包名,项目出现错误无法运行,解决方法请移步 —— 《Android Studio修改包名导致引用R文件报错问题》
移动端手机 App 耗电量测试:Monkey 电量测试基本作及 Android 性能优化
returnMonkey 测试
上面已经说过了一种退出APP的方法了,接下来这个命令是相当于杀掉当前的APP进程。存放路径:Monkey程序是Android系统自带的,由Ja语言写成,在Android文件系统中的存放路径是: //framework/monkey.jar。
1;大致作流程:通过名为“monkey”的Shell脚本去启动Monkey.jar程序(shell脚本在Android文件系统中 的存放路径是://bin/monkey),在你指定的APP应用上模拟用户点击,滑动,输入等作以极快的速度来对设备程序进行压力测试,检测程序是否会发生异常,然后通过日志进行排错。
作命令格式:adb shell monkey {+命令参数}
获取Android包名方法:(注意:请开启手机开发者模式,请开启手机USB调试模式)
查看正在运行的程序的包名:adb shell dumpsys activity activities | sed -En -e '/Running activities/,/Run #0/p' (例如:我清理手机后台之后,开启了QQ,输入命令之后,就会出现QQ的进程,框的地方就是qq的包名)
monkey常用作命令
-p 包名:指定应用程序。例如:adb shell monkey -p 包名 总数
-v:打印log级别,-v越多日志信息越详细,最多支持3个。例如:adb shell monkey -p 包名 -v -v -v 总数
-s:伪随机数生成器的 seed 值,通俗的说就是个标记,后面跟数字,例如:执行adb shell monkey -s 1 -p 包名 总数,这个我标记了-s 1,命令作完之后,我发现有日志报错,我想重新执行这个monkey作,那你就可以继续执行这个命令,排错时常用。
-f:后接测试脚本名,例如:adb shell monkey -f 脚本名 总数
-throttle:翻译减速的意思,后面接时间,单位为ms,,表示之间的固定延迟,如果不接该项,monkey将不会延迟,例如:adb shell monkey --throttle 500 -p 包名 总数
--pct-类别 11个百分比控制(有的是9种,没有--pct-pinchzoom,--pct-rotation)由安卓SDK决定
11种,按顺序罗列的
--pct-touch {+百分比}:0
翻译触摸,触摸泛指发生在某一位置的一个down-up,点击
--pct-motion {+百分比}:1
翻译动作,动作泛指从某一位置接下(即down)后经过一系列伪随机后弹出(即up)
--pct-pinchzoom {+百分比}:2
翻译二指缩放,智能机上的放大缩小手势作
翻译轨迹,轨迹包括一系列的随机移动,以及偶尔跟随在移动后面的点击
翻译屏幕旋转,横屏竖屏
--pct-n {+百分比}:5
翻译基本导航,基本导航主要来自方向输入设备的上、下、左、右
--pct-majorn {+百分比}:6
翻译主要导航,主要导航通常指引发图形界面的一些动作,如键盘中间按键、返回按键、菜单按键等
--pct-syskeys {+百分比}:7
翻译系统按键,系统按键通常指仅供系统使用的保留按键,HOME键、BACK键、拨号键、挂断键、音量键等
--pct-appswitch {+百分比}:8
翻译应用启动,应用启动(activity launches)即打开应用,通过调用startActivity()方法限度地开启该package下的所有应用
--pct-flip {+百分比}:9
翻译翻转,键盘轻弹百分比,如点击输入框,键盘弹起,点击输入框以外区域,键盘收回
--pct-anynt {+百分比}:10
翻译其他类型,其他类型指上文中未涉及的所有其他,keypress、不常用的button等
百分比控制以及使用
首先注意一点,这个Event percentages在不同版本的SDK版本中顺序可能会不一样。
如果在monkey参数中不指定参数,这些动作都是随机分配的,11个动作其分配的百分比之和为,通过添加命令选项来控制每个的百分比。
添加百分比之后的情况,举例添加--pct-touch百分比为100:
命令: adb shell monkey -v -p 包名 --pct-touch 100 100
结果:
说明:尴尬啊,我这个vent percentages竟然有12种,多了一种什么我也不知道,但我敢肯定这跟SDK版本有关系,想知道的同学可以自己从安卓SDK中反编译出monkey源码,通过查看源码中的MonkeySourceRandom.ja文件获知!查出来的同学可以告知我下。
说明:尴尬啊,我这个vent percentages竟然有12种,多了一种什么我也不知道,但我敢肯定这跟SDK版本有关系,想知道的同学可以自己从安卓SDK中反编译出monkey源码,通过查看源码中的MonkeySourceRandom.ja文件获知!查出来的同学可以告知我下,我想做伸手
-ignore-crashes:翻译忽略崩溃,当应用程序崩溃或发生失控异常时,monkey将继续运行直到计数完成。如果不设置此项,monkey遇到上述崩溃或异常将停止运行。
-ignore-timeouts:翻译忽略超时,当应用程序发生任何超时错误(如ANR,即Application Not Responding)时,monkey将继续运行直到计数完成。如果不设置此项,monkey 遇到此类超时将停止运行。
monkey测试中,如何终止运行:
方法一:
新建一个窗口
执行: adb shell ,
再执行ps | grep monkey,返回来的个数字,即是monkey的进程号
然后kill pid 进程号。如图
对手机进行重启
新建一个窗口
执行adb reboot
log日志导出
保存到电脑上。
例如:保存到电脑上标准流与错误流分开保存,分别命名为.txt,error.txt
error.txt:此文件在手机上的SDCARD中,主要记录了MONKEY测试时产生的一些ANR、强制关闭等异常。 执行:adb shell monkey -p 包名 -v 1000 1>/Users/weixiangyang/Desktop/.txt 2>/Users/weixiangyang/Desktop/error.txt
例如:保存到电脑上并命名为monkey.txt
保存到手机上。注意:手机要root
例如:保存到手机上并命名为monkey.txt
执行:
adb shell说明:进入adb shell后就相当于进入linux的root下面,但是没有权限在里面创建文件,所以手机要root
monkey -p 包名 -v 1000 > /mnt/sdcard/monkey.txt
注意:我的 adb shell 跟monkey XXX是分开执行的,分两行!!!
例如:保存到电脑上标准流与错误流分开保存,分别命名为.txt,error.txt
执行:adb shell monkey -p 包名 -v 1000 1>/mnt/sdcard/.txt 2>/mnt/sdcard/error.txt
如何获取android 签名信息
系统属性的变化,如果期间系统的属性发生变化则把变化的值显示出来android中有时候需要获取应用的签名信息,签名信息一般有:公钥,算法名,MD5值,序列号。要想获取这些信息首先该APK应用要有系统权限。
1. 在配置文件里添加系统权限:android:sharedUserId="android.uid."
2. 获取签名信息的字符信息:
String signature_key = "";
try{
PackageInfo packageInfo = context.getPackageMar().getPackageInfo(pkgName,
PackageMar.GET_SIGNATURES);
Signature[] signatures =
packageInfo.signatures;
SignatureKey.parseSignature(signatures[0].toByteArray());
e.printStackTrace();
} catch (NullPointerException e) {
e.printStackTrace();
}(1).其中packageInfo 得到的是指定包名的签名信息的字符串。另提及多说一句:在程序中我们一般使用
List list =
mPackageMar.getInstalledPackages(0);来得到所有的安装包的信息,这其中包括应用名,包名,大小....
(2).
其中[]signatures里是存放的签名的字符串数组。我们一般取用个signatures[0]来做为该应用的签名信息。这里有一个疑惑就是为什么得到的是一个字符串的数组列表,而不是一个字符串,也有的开发者采用:
StringBuilder builder = new StringBuilder();
for(Signature sign: signatures
){
builder.append(sign.toCharsString());
builder.append("/n");
}来得到所有的签名信息。在这里我验证过,signatures
的长度为1,所以指定apk的签名信息就为signatures[0]。
至于第二种方法有待发现。
3 .获取签名的MD5值
public static final String getMD5String(byte[] paramArrayOfByte)
{char[] asciiTable = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
97, 98, 99, 100, 101, 102 }; // ascii表对应的数字和字符的编码
try
{MessageDigest md5MessageDigest =
MessageDigest.getInstance("MD5");
md5MessageDigest.update(paramArrayOfByte);//
byte[]
tempByte = md5MessageDigest.digest();
int i =
tempByte.length;
char[] tempChar = new char[i
2];
int j = 0;
int k =
0;
while (true) { //
将二进制数组转换成字符串
if (j >= i)
{return new
String(tempChar);
}int m
= tempByte[j];
int n = k +
tempChar[k] = asciiTable[(0xF & m >>>
4)];
k = n +
tempChar[n] = asciiTable[(m &
0xF)];
j++;
}}
catch (Exception e)
{e.printStackTrace();
}return
null;
}(1). 其中参数就是上一步得到的签名的byte数组。
4. 获取公钥,签名算法,签名序列号
{try
{CertificateFactory
certFactory =
CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate) certFactory.generateCertificate(new
String pubKey =
cert.getPublicKey().toString(); //公钥
String signNumber =
cert.getSerialNumber().toString();
System.out.println("signName:" +
cert.getSigAlgName());//算法名
System.out.println("pubKey:" +
pub46、截屏命令:Key);
System.out.println("signNumber:" +
signNumber);//证书序列编号
System.out.println("subjectDN:"+cert.getSubjectDN().toString());
} catch (CertificateException e)
{e.printStackTrace();
}}
5. 电脑查看APK签名信adb shell cat //build.prop息
查看三方应用或是系统应用签名
用winrar打开待查看的apk,将其中META-INF文件夹解压出来,得到其中的CERT.RSA文件
1.keytool
命令是:keytool -printcert -file
<签名文件RSA的路径>
2.jarsigner -verify -verbose -certs Superuser.apk
此条未验证成功
哪里有回收旧电脑台式 回收旧台式电脑多少钱
大家好我是乐乐,哪里有回收旧电脑台式,关于回收旧台式电脑多少钱一台很多人还不知道,那么现在让我们一起来看看吧! 哪里有回收旧电脑台式 回收旧台式电脑多少钱一台 哪里有回收旧电脑···
老滚5高尔多护符碎片 老滚五高尔多护符
上古卷轴5高尔多黑弓不随等级提升 .....解释一下,版本不能太旧,在打代码之前,首先你要看清楚m如果卡住位置出不来了od作者的安装条件,这些mod是要条件的。空格不能少。. 上古卷轴5抗毒项链···
淘宝网怎么买东西 在淘宝怎么买东西?
次怎么在淘宝物 淘宝APP使用技巧:1、手机淘宝可以注销,账户注销后,已经完成的交易无法进行售后服务,首先进入手机淘宝,点击右下角的“我的淘宝”,点击右上角的设置按钮,点击账户与安···