命令写法是:使用反编译安装包ApkTool中的xml获取包名并且启动Activity名,adbshellamstartcomtencentmm/comtencentmmuiLauncherUI。
另外,电脑上可以直接用aaptexe分析安装包中的xml。也可以在手机上安装FX管理器,把安装包中的xml直接解压出来用FX管理器查看。
androidADB命令能够运行设备的shell;管理模拟器或设备的端口映射;计算机和设备之间上传/下载文件;将本地apk软件安装至模拟器或android设备。
扩展资料:
androidADB命令的作用:
adb可以起到调试桥的作用,通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序。adb的工作方式比较特殊,采用监听SocketTCP5554等端口的方式让IDE和Qemu通讯。
默认情况下adb会daemon相关的网络端口,所以当运行Eclipse时adb进程就会自动运行。
adb是androidsdk里的一个工具,用这个工具可以直接 *** 作管理android模拟器或者真实的android设备。
1说明
2使用adb命令获取指定应用的包名和Activity名称
3使用adb命令启动/关闭APP
4使用adb命令把手机中的apk导到电脑上
5查看apk中的AndroidManifestxml文件
6使用adb命令进行数据备份
7查看数据
8结语
查看其它APP数据的前提是该APP默认开启数据备份,也就是allowBackup属性。
想问一下大家在平时的开发中对应用的安全性有很在意么?有可能大家会想到加密、混淆、apk加固,但还有一些其他细节的东西需要大家去了解。今天就介绍一下android:allowBackup属性。这个属性在开发的过程中通常是默认开启的,Google起初是为了防止数据丢失,留下了这个功能,但是这个属性也容易造成一些隐私数据的泄露。如果你想关闭可以把它设置为false。那么这个属性在哪里设置呢,就在AndroidManifestxml文件中的application标签中。
要备份APP的数据,首先我们要知道这个APP的包名才可以进行备份。
在手机或模拟器上面运行APP,然后输入命令: adb shell dumpsys activity top #
这时会输出很多东西,你可以用查找功能Ctrl+F,找到TASK,下图红框中就是要找的包名
命令: adb logcat| findstr START
然后在手机或模拟器上点击你想要获取的应用,这时就会在cmd中出现相应的包名和类名了。
启动APP的命令: adb shell am start -W -n package/activity
命令窗口通过adb shell 进入android 的Linux命令界面,输入am help看到如下信息:
它会展示出在不同场景下(比如start-activity、start-service等)不同参数代表的意义一些参数的意义,情况太多了这里就不细说了。
回到正题,后面的package和activity就是上面获取包名第二种方法中提到的cmp,比如我们要启动谷歌地图: adb shell am start -W -n comgoogleandroidappsmaps/comgoogleandroidmapsMapsActivity
在这里我们再做一个延伸, 用命令做APP的冷启动和热启动 *** 作,然后记录启动的时间
我们看到上图中有三个数字ThisTime、TotalTime和WaitTime,这三个数字就是本次启动APP所花费的时间。
热启动时退出退出APP的命令: adb shell input keyevent 3 ,这就相当于按了手机的home键,然后我们再执行启动APP的命令,这样就完成了热启动。
我们看到热启动花费的时间比冷启动少了很多,一套冷、热启动的流程我们就走完了。接下来就看我们怎么去优化了,让它们变的更少。所以我们在平时做启动优化的时候可以把自己的APP和一些优秀的APP做一下对比看看还差多少。
上面已经说过了一种退出APP的方法了,接下来这个命令是相当于杀掉当前的APP进程。
命令: adb shell am force-stop package
这时候再使用启动命令,就相当于冷启动了。
有的时候我们在手机上查看和 *** 作apk不是特别方便,而且通过文件管理找apk也很难找。接下来就介绍怎么用adb命令把手机中的apk导到电脑上。
通过包名获取apk在手机中的存储路径,命令 adb shell pm path package
导出apk文件,到当前目录下
命令: adb pull 路径
这一步就要看一下apk中有哪些东西了,主要还是看一下AndroidManifestxml文件当中的allowBackup设置。
我平常用的方法就是吧apk文件的后缀该成zip,然后就可以看到里面的东西了。下面的是谷歌地图的apk的构成。
下面来看一下AndroidManifestxml文件,会看到都是乱码,但是关键的信息还是可以获取的,我们目前想要的就是下图红框中的allowBackup属性,像谷歌的APP肯定是把它设置成false的,所以我们没办法备份它的信息的。
那么我们怎么看一个应用的allowBackup属性设置成true还是false呢,我的观察和实践出来的方法是看allowBackup后面有没有小方框,有就代表设置了true。如果有哪位大神知道好的可靠的方法还请留言告知。
下面是其他apk中的AndroidManifestxml文件,后面带了个小方框。
在了解到APP可以备份之后,我们就可以开始做坏事了,哈哈。
备份的命令: adb backup -nosystem -all -noapk -noshared -f dataab package
[-system | -nosystem] 是否备份系统
[-apk | -noapk] 是否备份apk安装文件
[-shared | -noshared] 是否备份手机存储空间
-f ab 存档格式一定要是ab
package:包名
在运行命令之后,手机或模拟器会出现一个页面要求你输入备份密码,这个密码你可以随便输入,但你要记住,在后面查看ab文件的时候会用到。
输入密码,点击备份我的数据之后就开始备份了,备份完成之后会有提示,这时就是生产一个ab文件了。
ab文件大家很少接触,这里使用abe工具(链接: >
提取码:uns4 )解析ab文件 ,也是通过命令,把abejar和刚才生成的ab文件放到同一个文件夹中,然后运行命令: java -jar abejar unpack xxxab xxxrar
(如果不想使用命令可以看看这篇文章 >
android怎么用adb shell抓intent
(1)用“adb shell dumpsys activity”命令可以检视 (2)另外,用"adb logcat grep ActivityManager",也可以检视当前正在执行的Activity
adb shell procrank 怎么用adb shell procrank 查询各程序记忆体使用情况adb shell service list 检视services资讯adb shell cat /proc/meminfo 检视当前的记忆体情况
YUNOS ADB shell 怎么用来ROOT可以用手机root
(1)下载360超级root
(2)下载完成后点选安装,并且开启
(3)开启后点击“开始root”等待片刻即可
备注:root后无法保修,并且有些机型无法root
android wifi adb怎么用可以用腾讯WIFI管家
它能自动找到附近无线网路并且支援进行连入的
而且不仅是在一般的户外环境,在地铁站中,它都可以找到无线网路的,现在仅有它支援呢
android studio 怎么用adb是用来管理模拟器和真机的通用除错工具,该工具功能强大,直接开启cmd即可使用adb命令,adb的全称为Android Debug Bridge,是起到除错桥的作用,通过adb我们可以在Eclipse中方面通过DDMS来除错Android程式,说白了就是debug工具,adb的工作方式比较特殊,采用Socket TCP 5554等埠的方式让IDE和Qemu通讯,预设情况下adb会daemon相关的网路埠,所以当我们执行Eclipse时adb程序就会自动执行,借助adb工具我们可以管理装置或手机模拟器的状态,还可以进行很多手机 *** 作,如安装软体、系统升级、执行shell命令等等,其实简而言说,adb就是连线Android手机与PC端的桥梁,可以让使用者在电脑上对手机进行全面的 *** 作
1:检视当前模拟器或者Android装置例项的状态
一般在使用前都会使用adb devices这个命令检视一下模拟器的状态,通过这个命令得到ADB的回应资讯,可以看到ADB作为回应为每个例项制定了相关的资讯
11:emulator-5554为例项名称
12:device为例项连线状态,device表示此例项正与adb相连线,offline表示此例项没有与adb连线或者无法响应
2:安装和解除安装APK应用程式
你可以从电脑上覆制一个APK应用到模拟器或者Android装置上,通过adb install <path_to_apk安装软体,adb uninstall <packageName解除安装软体,如果你不知道这个包名,在AndroidManifestxml里的找package=""就可以了
21: 先把apk档案拷贝到sdk目录下的tools
22: 进入dos下切换到SDK的安装路径下的tools目录
23 :执行安装命令
adb install <path_to_apk
发生的错误,因为我连线了真机,而且也打开了模拟器,所以adb给我的回应资讯是“比一个多的驱动装置和模拟器”,我最后关闭掉了模拟器在执行安装命令,就提示安装成功了
解除安装APK
3:从本机上覆制档案到模拟器或者Android装置
adb push <本地路径<远端路径,<本地路径指的是自己的机器上或者模拟器上的目标档案,<远端路径指的是远端装置例项上的目标档案
4:从模拟器复制档案到模拟器或者Android装置
adb pull <远端路径<本地路径,<本地路径指的是自己的机器上或者模拟器上的目标档案,<远端路径指的是远端装置例项上的目标档案
输入adb shell就可以进入shell命令行了,可以使用一些常用的shell命令,如:ls命令列出了档案
android怎么用intent跳转页面
Android页面跳转Intent使用
在android中,一个页面就是一个activity,在页面跳转中,用到了Intent这个类,其实Intent跳转没什么大不了的,就是呼叫几个方法,第一个:intentsetAction(“wangzheguilai”);当然,里面的”wangzheguilai”这个字串是要在主配置档案中配置的,第二个:intentsetClass(MainActivitythis,SceondViewActivityclass);这个跳转方法是最常用的一种,这两种方法之后,用startActivity(intent);来启动跳转。不过这不是我说的重点,我所要说的是如何传值?一般对于字串的传值,就是呼叫intentputExtra("str",”字串内容”);来传值,但是要是传一个物件呢?在intent中提供了一个方法,也是 putExtra(),不过,这个是传物件的方法putExtra(String name, Serializable value),是可以传物件的,不过对应的物件要序列化,其实就是实现一个标示介面Serializable,下面将部分原始码附上。
这是一个userinfo类
package exampleregist;
import javaioSerializable;
public class Userinfo implements Serializable {
String userName;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
thisuserName = userName;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
thisuserPassword = userPassword;
}
public String getUserGender() {
return userGender;
}
public void setUserGender(String userGender) {
thisuserGender = userGender;
}
public String getUserBathday() {
return userBathday;
}
public void setUserBathday(String userBathday) {
thisuserBathday = userBathday;
}
public String getUserLove() {
return userLove;
}
public void setUserLove(String userLove) {
thisuserLove = userLove;
}
public String getUserEmail() {
return userEmail;
}
public void setUserEmail(String userEmail) {
thisuserEmail = userEmail;
}
String userPassword;
String userGender;
boolean userI arry;
public boolean isUserI arry() {
return userI arry;
}
public void setUserI arry(boolean userI arry) {
thisuserI arry = userI arry;
}
String userBathday;
String userLove;
String userEmail;
}
可以看出该类实现了Serializable介面。
下面是跳转加传值的部分程式码:
Intent intent=new Intent();
intentsetClass(MainActivitythis,SecondviewActivityclass);
intentputExtra("user",user);user是例项化之后的物件
startActivity(intent);
下面是第二个介面所对应的类接受传过来的物件的程式码
TextView tex=new TextView(this);
Intent intent=getIntent();
Userinfo user=(Userinfo) intentgetSerializableExtra("user");
现在就是一个完整的user物件了,你可以随性而用了。
android怎么用intent传递arraylist<类>你说的普通的类是什么?有没有包含二进位制资料(比如之类的)?
如果仅仅是类似实体类那样,没有二进位制资料的,有2种方法
实现Serializable或者Parcelable介面(google建议使用Parcelable)
将物件转为gson字串传递
android adb shell 怎么查ram
Android 中检视记忆体的使用情况集常用adb命令
:blogcsdn/bigconvience/article/details/35553983
android怎么用intent呼叫本机的导航一、其他应用发Intent,执行下列方法:
I/@@@philn(12410): onCreate
I/@@@philn(12410): onStart
I/@@@philn(12410): onResume
发Intent的方法:
Uri uri = Uriparse("philn:blog163");
Intent it = new Intent(IntentACTION_VIEW, uri);
startActivity(it);
二、接收Intent宣告:
<activity android:name="IntentActivity" android:launchMode="singleTask"
android:label="@string/testname">
<intent-filter>
<action android:name="androidintentactionVIEW" />
<category android:name="androidintentcategoryDEFAULT" />
<category android:name="androidintentcategoryBROWSABLE" />
<data android:scheme="philn"/>
</intent-filter>
</activity>
三、如果IntentActivity处于任务栈的顶端,也就是说之前开启过的Activity,现在处于
I/@@@philn(12410): onPause
I/@@@philn(12410): onS 状态的话
其他应用再发送Intent的话,执行顺序为:
I/@@@philn(12410): onNewIntent
I/@@@philn(12410): onRestart
I/@@@philn(12410): onStart
I/@@@philn(12410): onResume
在Android应用程式开发的时候,从一个Activity启动另一个Activity并传递一些资料到新的Activity上非常简单,但是当您需要让后台执行的Activity回到前台并传递一些资料可能就会存在一点点小问题。
首先,在预设情况下,当您通过Intent启到一个Activity的时候,就算已经存在一个相同的正在执行的Activity,系统都会建立一个新的Activity例项并显示出来。为了不让Activity例项化多次,我们需要通过在AndroidManifestxml配置activity的载入方式(launchMode)以实现单任务模式,如下所示:
<activity android:label="@string/app_name" android:launchmode="singleTask"android:name="Activity1"></activity>
android 高通cpu怎么用adb检视mem一、利用Android API函式检视
11 ActivityManager检视可用记忆体。
ActivityManagerMemoryInfo outInfo = new ActivityManagerMemoryInfo();
amgetMemoryInfo(outInfo);
outInfoavailMem即为可用空闲记忆体。
12、androidosDebug查询PSS,VSS,USS等单个程序使用记忆体资讯
MemoryInfo[] memoryInfoArray = amgetProcessMemoryInfo(pids);
MemoryInfo pidMemoryInfo=memoryInfoArray[0];
pidMemoryInfogetTotalPrivateDirty();
getTotalPrivateDirty()
Return total private dirty memory usage in kB USS
getTotalPss()
Return total PSS memory usage in kB
PSS
getTotalSharedDirty()
Return total shared dirty memory usage in kB RSS
二、直接对Android档案进行解析查询,
/proc/cpuinfo系统CPU的型别等多种资讯。
/proc/meminfo 系统记忆体使用资讯
如
/proc/meminfo
MemTotal: 16344972 kB
MemFree: 13634064 kB
Buffers: 3656 kB
Cached: 1195708 kB
我们检视机器记忆体时,会发现MemFree的值很小。这主要是因为,在linux中有这么一种思想,记忆体不用白不用,因此它尽可能的cache和buffer一些资料,以方便下次使用。但实际上这些记忆体也是可以立刻拿来使用的。
所以 空闲记忆体=free+buffers+cached=total-used
通过读取档案/proc/meminfo的资讯获取Memory的总量。
ActivityManager getMemoryInfo(ActivityManagerMemoryInfo)获取当前的可用Memory量。
三、通过Android系统提供的Runtime类,执行adb 命令(,procrank,ps等命令)查询
通过对执行结果的标准控制台输出进行解析。这样大大的扩充套件了Android查询功能例如:
final Process m_process = RuntimegetRuntime()exec("/system/bin/ -n 1");
final StringBuilder read = new StringBuilder();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(m_processgetInputStream()), 8192);
# procrank
RuntimegetRuntime()exec("/system/xbin/procrank");
记忆体耗用:VSS/RSS/PSS/USS
Terms
• VSS - Virtual Set Size 虚拟耗用记忆体(包含共享库占用的记忆体)
• RSS - Resident Set Size 实际使用实体记忆体(包含共享库占用的记忆体)
• PSS - Proportional Set Size 实际使用的实体记忆体(比例分配共享库占用的记忆体)
• USS - Unique Set Size 程序独自占用的实体记忆体(不包含共享库占用的记忆体)
一般来说记忆体占用大小有如下规律:VSS >= RSS >= PSS >= USS
USS is the total private memory for a process, ie that memory that is pletely unique to that processUSS is an extremely useful number because it indicates the true incremental cost of running a particular process When a process is killed, the USS is the total memory that is actually returned to the system USS is the best number to watch when initially suspicious of memory leaks in a process
转载
adb shell "dumpsys window | grep mCurrentFocus"
adb命令获取比较简单直接(对于获取单个页面比较方便)
打开android studio 连接手机,打开您想查看的App,之后在android studio中点击
Tools > Layout Inspector (用Layout Inspector功能)
————————————————
参考链接: >
输出中老是报这个错,真机调试安装不了apk网上总说手动关闭abdexe 重启就好了。其实问题是出在你的Eclipse使用的adbexe,被别地程序抢先占用了。(有时候还是和你不停的抢)现在上班或者平时,大家还是会用QQ的。(获取其他的可以扫描手机的软件)就像这个老是d出的检查。(在这里我不是黑什么软件,只是大家都是抢这个adb。exe,来连接手机。开发时难免被冲突到。)我这个问题在于,我的QQ没有怎么更新。估计是忘了一次更新。(我电脑没有安装什么卫士,因为这个也很容易占用adb)经过检查,我发现估计是QQ的某个检查占用了adb。因为我也用了网上说的用指令关闭adb然后在重启eclipse发现是tadbexe占用,直接在任务管理器里面kill掉或taskkill /f /im tadbexe这个怎么找占用每次搞真心麻烦。我就不说什么了。想用这个方法的自己查资料最后总结,少安装一些检查手机的软件。(用一种就可以了,多了几个软件抢来抢去。出了问题,不好分析。特别是这种占用问题。)想想还是说下怎么查占用。netstat -aonfindstr "xxxx"(PID)
以上就是关于想学编程不知道要怎么学全部的内容,包括:想学编程不知道要怎么学、使用adb查看别人家APP的数据、android怎么用adb shell抓intent等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)