想学编程不知道要怎么学

想学编程不知道要怎么学,第1张

命令写法是:使用反编译安装包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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9579128.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存