使用的Eclipse的版本为:eclipse-java-indigo-SR2-win32
点击菜单"Help" - "Install New Software..."
输入:http://dl-ssl.google.com/android/eclipse
点击"Finish",开始下载安装"ADT Plugin"。
+++++++++++++++++++++++++++++++++++++++++
若在下载安装时出现如下问题:
1 Cannot complete the install because one or more required items could not be found.2 ... ...
则需要先安装"WST Server Adapters",安装办法:【"Help" - "Install New Software..."】
Work With: Indigo - Http://download.eclipse.org/releases/indigo
选择"Web, XML, Java EE and OSGi Enterprise Development"下的"WST Server Adapters",如下图:
若安装时,无法连上源,试试菜单中的 help - Eclipse Marketplace
安装完成之后,重启Eclipse即可。
如果以上两种方法都不行,也可以进行手动安装ADT
一、手动安装ADT
手动下载ADT插件:,解压后的路径为D:\Android\download\ADT-0.9.7(我自己的)
启动eclipse , 选择help ->install new Software,选择”Available Software Sites”,
然后add->Local…选择手动下载到本地的ADT插件(已解压文件)
OK后,再回到help ->install new Software的界面中,选择刚才添加的ADT路径,同时选择Developer
tools,点击next->next->I accept->finish。即可进行ADT手动安装,安装完成后会提示重启。
二、无法连接的解决方法
升级SDK版本时,选择菜单 window->Android sdk and avd manager,选择update all按钮,会经常出现无法连接站点,此时就需要进行强制连接:
在解压Android SDK 2.1的路径(我的D:\Android\android-sdk-windows)找到SDK Manager.exe,双击运行,会出现一个Settings选项,
点击Settings,选择Force https:…sources to be fetched using http://...,然后回车确定。这种方法为强制安装,需多试几次。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
google.com在国内被墙了,可以在C:\WINDOWS\system32\drivers\etc\hosts文件中加上该域名的ip解析
google全球IP:
203.208.46.164 kh.google.com
74.125.237.1 dl-ssl.google.com
google服务的域名IP对应表:
#Google主页
203.208.46.146 www.google.com#这行是为了方便打开Android开发官网 现在好像不FQ也可以打开74.125.113.121 developer.android.com#更新的内容从以下地址下载203.208.46.146 dl.google.com203.208.46.146 dl-ssl.google.com添加以上的网址,再选用http协议,就可以正常的进行更新了。或者也可以什么都不做,过上一两天可能会恢复正常。下边贴上使用Google各种服务在修改hosts文件时需要添加的内容。#Google Service#Chrome 网上应用203.208.46.146 chrome.google.com203.208.46.146 clients0.google.com203.208.46.146 clients1.google.com203.208.46.146 clients2.google.com203.208.46.146 clients3.google.com203.208.46.146 clients4.google.com203.208.46.146 www.googleusercontent.com203.208.46.146 lh0.googleusercontent.com203.208.46.146 lh1.googleusercontent.com203.208.46.146 lh2.googleusercontent.com203.208.46.146 lh3.googleusercontent.com203.208.46.146 lh4.googleusercontent.com203.208.46.146 lh5.googleusercontent.com203.208.46.146 lh6.googleusercontent.com203.208.46.146 clients1.googleusercontent.com203.208.46.146 clients2.googleusercontent.com#网页快照203.208.46.146 webcache.googleusercontent.com#Google SSL203.208.46.146 encrypted.google.com203.208.46.146 encrypted.google.com.hk#Google Docs203.208.46.146 docs.google.com203.208.46.146 docs0.google.com203.208.46.146 docs1.google.com203.208.46.146 docs2.google.com203.208.46.146 docs3.google.com203.208.46.146 spreadsheets.google.com203.208.46.146 spreadsheets0.google.com203.208.46.146 spreadsheets1.google.com203.208.46.146 spreadsheets2.google.com203.208.46.146 spreadsheets3.google.com#Gmail203.208.46.146 mail.google.com203.208.46.146 chatenabled.mail.google.com #Gmail中Gtalk聊天服务#Google 搜索203.208.46.146 www.google.com#Google preview203.208.46.146 www.googlepreview.com#Google 翻译203.208.46.146 translate.google.com203.208.46.146 translate.googleapis.com#Google 搜索建议(IE9)203.208.46.146 clients5.google.com#Google Code203.208.46.146 code.google.com#Picasa 网络相册203.208.46.146 picasaweb.google.com203.208.46.146 lh0.ggpht.com203.208.46.146 lh1.ggpht.com203.208.46.146 lh2.ggpht.com203.208.46.146 lh3.ggpht.com203.208.46.146 lh4.ggpht.com203.208.46.146 lh5.ggpht.com203.208.46.146 lh6.ggpht.com203.208.46.146 lh7.ggpht.com203.208.46.146 lh8.ggpht.com203.208.46.146 lh8.ggpht.com203.208.46.146 lh9.ggpht.com203.208.46.146 lh6.google.com#Google 个人资料203.208.46.146 profiles.google.com203.208.46.146 browsersync.google.com#Google+203.208.46.146 talkgadget.google.com #Google+中的聊天服务203.208.46.146 ssl.gstatic.com203.208.46.146 images-pos-opensocial.googleusercontent.com203.208.46.146 images1-focus-opensocial.googleusercontent.com203.208.46.146 images2-focus-opensocial.googleusercontent.com203.208.46.146 images3-focus-opensocial.googleusercontent.com203.208.46.146 images4-focus-opensocial.googleusercontent.com203.208.46.146 images5-focus-opensocial.googleusercontent.com203.208.46.146 images6-focus-opensocial.googleusercontent.com203.208.46.146 plus.google.com#Download 下载203.208.46.146 dl.google.com203.208.46.146 dl-ssl.google.com#Groups203.208.46.146 groups.google.com#Google URL Shortener203.208.46.146 goo.gl#Google App Engine203.208.46.146 appengine.google.com#Android Developer74.125.113.121 developer.android.com
Android SDK Manager下载安装: 【USE AN EXISTING IDE】
Android SDK Manager安装SDK慢,可试试下列方法:
1、如果是windows7,那么"开始-->所有程序-->Android SDK Tools-->右键SDK Manager-->以管理员身份运行(A)"
2、在SDK Manager窗口中,Tools-->Options...-->打开Settings 1) 打开代理http://www.cnproxy.com/,找一个代理服务器和相应端口号 2) 将IP地址填入Http Proxy Server,端口填入Http Proxy Port 3) 在Misc下选中Force https://...sources to be fetched using http://...下面这种方法试了下,觉得更好:
打开hosts文件:Windows在C:\WINDOWS\system32\drivers\etc目录下,Linux用户打开/etc/hosts文件【本人是windows,并测试过】在文件末尾默认添加星号行内代码:****************************************#Google主页203.208.46.146 www.google.com#这行是为了方便打开Android开发官网 现在好像不VPN也可以打开74.125.113.121 developer.android.com#更新的内容从以下地址下载203.208.46.146 dl.google.com203.208.46.146 dl-ssl.google.com****************************************
如果使用Android SDK Manager无法下载SDK版本,可以自己手动下载并安装。
各个版本的SDK在repository*.xml 中有描述 [当前URL地址:(如果打不开,将https修改为http试试)]
xml中部分内容如下:
android-15_r03.zip(os为any,表示该版本SDK适用于所有的系统)的下载地址为:
将下载的android-15_r03.zip解压到Android SDK Tools的platforms目录中,会得到一个名为android-4.0.4文件夹
然后重启Android SDK Manager或点击Android SDK Manager的Packages菜单下的Reload即可看到android-4.0.4版本的SDK
其他版本SDK的下载地址:
***************************************
Android SDK Platform 4.2.2 (*** NEW ***)Android SDK Platform 4.1.2 (*** NEW ***)Android SDK Platform 4.0.3Android SDK Platform 4.0Android SDK Platform 3.2 revision 1Android SDK Platform 3.1 revision 3Android SDK Platform 3.0, revision 2Android SDK Platform 2.3.3_r2Android SDK Platform 2.3.1_r2Android SDK Platform 2.2_r3--- OLDER LINKS (Still working) ---Android SDK Platform Honeycomb Preview, revision 1Android SDK Platform 2.3.3_r1 (Offline complete download) - Approx 80 MBAndroid SDK Platform 2.3_r1 (Offline complete download) - Approx 80 MBAndroid SDK Platform 2.2_r2 (Offline complete download) - Approx 80 MBAndroid SDK Platform 2.1_r1 (Offline complete download) - Approx 80 MBAndroid SDK Platform 2.0.1_r1 (Offline complete download) - Approx 80 MBAndroid SDK Platform 2.0, revision 1 (Offline complete download) - Approx 80 MBAndroid SDK Platform 1.6_r2 (Offline complete download) - Approx 63 MBAndroid SDK Platform 1.5_r3 (Offline complete download) - Approx 54 MBAndroid SDK Docs for Android API 7, revision 1 - Approx 48 MB
参考:
Android SDK Tools, revision 22 (60 to 110 MB) [必装]
platform-tools (11 MB) [必装]
build-tools [必装]
[18.0.1]
[18.0.0]
[17.0.0]
参考:
***************************************
Google USB Driver下载 [用于真机调试] [如果Android Manager SDK可以下载的话,也可以在里面进行安装]
1. 解压到sdk\extras\google中,会生成一个usb_driver文件夹
2. 更新Android手机的驱动
(1) USB插入android设备,然后打开设备管理器
(2)点开属性查看硬件ID
(3)用记事本打开sdk\extras\google\usb_driver\android_winusb.inf,将上面2个字串按下图格式填入
[Google.NTx86]
;Google Nexus 4
%SingleAdbInterface% = USB\VID_18D1&PID_4EE2&REV_0228&MI_01%CompositeAdbInterface% = USB\VID_18D1&PID_4EE2&MI_01
[Google.NTamd64]
;Google Nexus 4
%SingleAdbInterface% = USB\VID_18D1&PID_4EE2&REV_0228&MI_01%CompositeAdbInterface% = USB\VID_18D1&PID_4EE2&MI_01
(4)然后更新驱动程序,驱动位置选择usb_driver目录
(5)最后就可以使用adb devices命令,看到自己的Android设备了,表示设备与电脑连接成功了(后面状态要是device,不能是offline)
3. 设置android手机为USB调试模式。方法: menu -> 设置 -> 应用程序 -> 开发 -> 选择"USB调试"
4. 设置应用程序为调试模式。方法:编辑AndroidManifest.xml ,增加调试参数android:debuggable="true", 如下:5. 执行真机调试操作:eclipse调试对话框中,Target窗口中选择Manual,点击 debug 按钮,选择真机设备,开始调试。Android软件发生异常,可以在命令行窗口下查看具体信息。 执行:./adb logcat 可以查看到更多的系统异常消息,注意Caused by打头的行,这些行指明了哪行代码出现错误。
***************************************
最后,你要有这些东东,具体需要什么Android库,就安装对应版本的android API
Eclipse调优(防止卡顿、启动慢):
eclipse.ini
-vmC:\Program Files\Java\jdk1.6.0_02\bin\javaw.exe-vmargs-Dcom.sun.management.jmxremote-Dosgi.requiredJavaVersion=1.5-Xverify:none-Xms512m-Xmx512m-Xmn128m-XX:PermSize=128m-XX:MaxPermSize=128m-XX:+DisableExplicitGC-Xnoclassgc-XX:+UseParNewGC-XX:+UseConcMarkSweepGC-XX:CMSInitiatingOccupancyFraction=85
JRE
使用ADT命令行工具
首先,你需要在cmd中进入android sdk的tools目录。
android list targets // 查看本地可使用android API版本
android list avd // 查看已创建的AVD设备
android delete avd -n wvga // 删除名为wvga的avd
android create avd -f -n myavd -t 2 -p c:\avd -s WVGA800 // 使用WVGA800皮肤创建一个名为myavd的avd,并保存到c:\avd(若该avd存在则强制覆盖)
-t --target 新的AVD的TargetID(必须)
-p --path 新AVD将被保存的位置
-n --name 新AVD的名称(必须)
-f --force 强制创建(覆盖已存在的AVD)
-s --skin 指定新AVD的皮肤
emulator -avd nexus4 // 运行名为nexus4的avd
###注:要运行adb工具,要首先进入android sdk的platform-tools目录【以下提到的android设备可以是avd,也可以是真机】
$提示符普通权限,#表示拥有root权限
注:低版本的adb可能有一些问题,建议升级到最新的版本
adb version // 查看adb的版本信息
adb shell wm size // 查看手机的分辨率
adb install d:\babyclock.apk // 安装d盘下的babyclock.apk文件到正在运行的android设备中
// -r 覆盖安装,保留数据和缓存文件; -d 解决低版本version问题; -s 安装apk到sd卡
adb push c:\test.txt /data/local // 将C盘下的test.txt放到正在运行的android设备的/data/local目录中
adb push G: \Intermediate\Android\APK\obj\local\armeabi-v7a\libUE4.so /sdcard/libUE4.so // 拷贝PC上的libUE4.so到手机的/sdcard目录中
adb pull /data/local/test.txt // 将正在运行的android设备的/data/local/test.txt文件传输到本地当前目录中
adb uninstall com.babyclock // 卸载babyclock应用(应用具体名称可在android设备的/data/data目录中去查看)
adb uninstall -k com.babyclock // 卸载babyclock应用(-k表示保留配置与缓存文件)
adb root // 以root方式重启adb(用于缺省非管理员权限的win7、win10系统)
adb unroot // 以非root方式重启adb(用于缺省非管理员权限的win7、win10系统)
adb remount // 将system分区重新挂在为可读写分区
adb reboot // 重启设备
adb reboot bootloader // 以刷机模式重启设备
adb reboot recovery // 以恢复模式重启设备
adb shell // 在运行的android设备中执行shell命令(进入命令模式,用exit退出)
adb -s RW9H8LJZDYEUWCV4 shell // 进入ID码为RW9H8LJZDYEUWCV4的设备中执行shell命令
adb shell pm list packages // 查看所有安装的应用
adb shell pm list packages -f // 查看所有安装应用所在路径
adb shell dumpsys diskstats // 查看手机存储空间占用情况
adb shell ps -ux // 在运行的android设备中执行shell命令(ps -ux)
adb shell ps -ux | grep com.tencent.tmgp.pubgm // 查看android设备上名为com.tencent.tmgp.pubgm应用的进程信息
adb shell ps | find /i "com.tencent.tmgp.pubgm" // 查看com.tencent.tmgp.pubgm进程是否存在
adb shell top -m 8 -d 1 -s cpu -t | egrep "(com.tencent.tmgp.pubgm|IOW|CPU%)" // 查看com.tencent.tmgp.pubgm按cpu消耗降序排序的前8线程(刷新频率为1s)
User 19%, System 10%, IOW 0%, IRQ 3%
User 162 + Nice 0 + Sys 84 + Idle 554 + IOW 0 + IRQ 18 + SIRQ 7 = 825 PID TID USER PR NI CPU% S VSS RSS PCY Thread Proc25672 30878 u0_a223 10 -10 6% S 1931316K 493784K ta RenderNico com.tencent.tmgp.pubgm25672 25701 u0_a223 10 -10 4% S 1931316K 493784K ta GameNico com.tencent.tmgp.pubgm25672 25918 u0_a223 10 -10 1% S 1931316K 493784K ta NativeThread com.tencent.tmgp.pubgmadb shell top -d 1 -s | egrep "(com.tencent.tmgp.pubgm|IOW|CPU%)" // 查看com.tencent.tmgp.pubgm的进程信息(刷新频率为1s)
User 15%, System 11%, IOW 0%, IRQ 2%
User 344 + Nice 0 + Sys 250 + Idle 1522 + IOW 0 + IRQ 41 + SIRQ 13 = 2170 PID USER PR NI CPU% S #THR VSS RSS PCY Name25672 u0_a223 10 -10 15% S 100 1933236K 504644K ta com.tencent.tmgp.pubgmadb shell kill 1535 // 杀掉pid为1535的进程
adb shell free -k // 以KB为单位显示系统当前内存占用
adb shell cat /proc/meminfo // 查看系统当前更详细的内存占用
MemTotal:所有可用RAM大小。
MemFree:LowFree与HighFree的总和,被系统留着未使用的内存。 Buffers:用来给文件做缓冲大小。 Cached:被高速缓冲存储器(cache memory)用的内存的大小(等于diskcache minus SwapCache)。 SwapCached:被高速缓冲存储器(cache memory)用的交换空间的大小。 已经被交换出来的内存,仍然被存放在swapfile中,用来在需要的时候很快的被替换而不需要再次打开I/O端口。 Active:在活跃使用中的缓冲或高速缓冲存储器页面文件的大小,除非非常必要,否则不会被移作他用。 Inactive:在不经常使用中的缓冲或高速缓冲存储器页面文件的大小,可能被用于其他途径。 SwapTotal:交换空间的总大小。 SwapFree:未被使用交换空间的大小。 Dirty:等待被写回到磁盘的内存大小。 Writeback:正在被写回到磁盘的内存大小。 AnonPages:未映射页的内存大小。 Mapped:设备和文件等映射的大小。 Slab:内核数据结构缓存的大小,可以减少申请和释放内存带来的消耗。 SReclaimable:可收回Slab的大小。 SUnreclaim:不可收回Slab的大小(SUnreclaim+SReclaimable=Slab)。 PageTables:管理内存分页页面的索引表的大小。 NFS_Unstable:不稳定页表的大小。adb shell cat /proc/cupinfo // 查看系统cpu信息
adb shell cat /proc/stat // 查看cpu占用情况
adb shell cat /sys/class/net/wlan0/address // 获取手机wlan mac地址
adb shell cat /proc/26218/limits // 查看pid为26218的进程限值
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited secondsMax file size unlimited unlimited bytesMax data size unlimited unlimited bytesMax stack size 8388608 unlimited bytesMax core file size 0 unlimited bytesMax resident set unlimited unlimited bytesMax processes 22097 22097 processesMax open files 4096 4096 filesMax locked memory 67108864 67108864 bytesMax address space unlimited unlimited bytesMax file locks unlimited unlimited locksMax pending signals 22097 22097 signalsMax msgqueue size 819200 819200 bytesMax nice priority 40 40Max realtime priority 0 0Max realtime timeout unlimited unlimited usadb shell cat /proc/26218/maps // 查看pid为26218的进程的模块信息
adb shell getprop | grep heapgrowthlimit // 查看单个应用的java虚拟机堆内存上限值
adb shell cat /system/build.prop | grep dalvik.vm // 另一种方法查看单个应用的java虚拟机堆内存上限值
dalvik.vm.heapgrowthlimit和dalvik.vm.heapsize都是java虚拟机的最大内存限制,
应用如果不想在dalvikheap达到heapgrowthlimit限制的时候出现OOM(Out Of Memory),需要在Manifest中的application标签中声明android:largeHeap=“true”,声明后应用dalvik heap达到heapsize的时候才会出现OOMadb shell dumpsys meminfo com.tencent.tmgp.pubgm // 查看android设备上名为com.tencent.tmgp.pubgm应用的内存信息
VSS : Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS : Resident Set Size 实际使用物理内存(包含共享库占用的内存) PSS : Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存) USS : Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存) USS 是针对某个进程开始有可疑内存泄露的情况,是一个程序启动了会产生的虚拟内存,一旦这个程序进程杀掉就会释放。不过USS需要通过root的手机adb shell dumpsys SurfaceFlinger // 显示android设备的Surface信息
adb shell dumpsys SurfaceFlinger --list // 显示android设备的获取可视窗口列表
adb shell dumpsys SurfaceFlinger | grep com.tencent.tmgp.pubgm // 获取com.tencent.tmgp.pubgm的Surface信息
adb shell dumpsys SurfaceFlinger --latency com.tencent.tmgp.pubgm/com.epicgames.ue4.GameActivity // 获取com.tencent.tmgp.pubgm应用的帧时延数据
第1行为设备本身固有的帧耗时,单位为ns,通常在16.7ms左右
从第2行开始,分为3列,一共有127行,代表每一帧的几个关键时刻,单位也为ns第1列t1: when the app started to draw (开始绘制图像的瞬时时间)第2列t2: the vsync immediately preceding SF submitting the frame to the h/w (VSYNC信令将软件SF帧传递给硬件HW之前的垂直同步时间)第3列t3: timestamp immediately after SF submitted that frame to the h/w (SF将帧传递给HW的瞬时时间,及完成绘制的瞬时时间)将第i行和第i-1行t2相减,即可得到第i帧的绘制耗时
16666666
0 0 00 0 0... ...0 0 0418243456489096 418243468251857 418243457645242418243480331232 418243484980451 418243481196024418243577706857 418243585352586 418243579044565418318173790110 418318176869276 418318174024745418326274237294 418326288588388 418326275332919adb shell dumpsys gfxinfo com.tencent.tmgp.pubgm // 查看android设备上名为com.tencent.tmgp.pubgm应用的图形信息
// 注:开发者选项中有个“ GPU呈现模式分析(ProfileGPU rendering)”功能,在开启该功能后,系统就会记录保留每个界面最后128帧图像绘制的相关时间信息
adb shell dumpsys batterystats com.tencent.tmgp.pubgm >d:\b1.log // 获取单个应用的电量消耗信息,并写入到d:\b1.log文件中
// 可通过google编写的historian.py脚本把数据信息转换为可读性很好的html文件,类似TraceView生成的列表数据
// python historian.py xxx.txt > xxx.html
adb shell dumpsys statusbar // 查看那些应用占据了状态栏
adb shell dumpsys activity a // 查看activity详细信息
adb shell dumpsys input | grep Focus // 查看焦点窗口
adb shell cat /sys/class/thermal/thermal_zone0/temp // 查看当前手机的温度
adb shell sqlite3 // 在运行的android设备中执行shell命令(sqlite3:进入sqlite数据库)
adb shell cd /data/local;ls // 在运行的android设备中执行shell命令(先执行cd /data/local,再执行ls命令)
adb shell su -c 'cp /sdcard/libUE4.so /data/app/com.tencent.tmgp.pubgm-1/lib/arm/libUE4.so' // 使用root权限将手机/sdcard目录中libUE4.so拷贝到/data/app/com.tencent.tmgp.pubgm-1/lib目录中
adb forward tcp:6100 tcp:7100 // 建立从主机端口6100到Android设备端口7100的转发
adb shell getprop // 查看手机设备等信息
adb logcat // 显示所有日志
adb logcat *:V // 详细模式显示所有日志
// V — 详细(最低优先级)
// D — 调试 // I — 信息(缺省) // W — 警告 // E — 错误 // F — 致命 // S — 静默(最高优先级,不会打印任何内容)adb logcat -v time -s Test > d:\ww1.log // 打印出log信息中的时间并且包含关键字 “Test” 的所有log以覆盖写的方式输出到d:\ww1.log文件中
adb logcat UE4:V DEBUG:V *:S -v tag // 过滤TAG为UE4输出级别大于V的日志与TAG为DEBUG输出级别大于V的日志,同时输出tag内容
方法 | 说明 |
Log.v(String tag,String text) | 显示全部(vervbose)信息 |
Log.d(String tag,String text) | 显示调试(debug)信息 |
Log.i(String tag,String text) | 显示一般(information)信息 |
Log.w(String tag,String text) | 显示警告(waning)信息 |
Log.e(String tag,String text) | 显示错误(error)信息 |
adb -s RW9H8LJZDYEUWCV4 logcat >d:\ww1.log // 连接ID码为RW9H8LJZDYEUWCV4的设备,并将log输出到d:\ww1.log文件中
adb shell dumpsys package com.tencent.tmgp.pubgm // 查看app相关所有信息,包括action,codepath,version,需要的权限等等信息
aapt dump badging NZGame-Android-Shipping-armv7-es2.apk // 查看NZGame-Android-Shipping-armv7-es2.apk版本号、权限等详细信息(版本号为:$versionName$.$versionCode$)
aapt dump badging NZGame-armv7-es2.apk | grep -c application-debuggable // 查看NZGame-armv7-es2.apk是否可调式(debuggable) 1表示可调式,0为不可调式
AndroidManifest.xml中application标签中将debuggable设为true
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
<application android:debuggable="true" ...>adb shell pm path com.tencent.tmgp.pubgm // 查看app的安装路径
adb shell "am broadcast -a android.intent.action.RUN -e cmd 'stat fps'" // 向设备发送一条广播,内容为stat fps
adb shell chmod 777 /data/local/tmp/gdbserver // 为gdbserver增加可执行权限
adb shell su -c 'chmod 777 /data/data/com.tencent.tmgp.pubgm/gdbserver' // 使用root为gdbserver增加可执行权限
adb shell run-as com.tencent.tmgp.pubgm // 进入应用的私有目录:/data/data/com.tencent.tmgp.pubgm
adb shell run-as com.tencent.tmgp.pubgm ls -li /data/data/com.tencent.tmgp.pubgm
// com.tencent.tmgp.pubgm(app必须是debuggable)不需要root权限情况下,查看自己私有目录下的文件信息
adb shell run-as com.tencent.tmgp.pubgm killall -9 gdbserver // 结束所有名为gdbserver的进程
adb devices // 查看正在运行的android设备
adb -s emulator-5554 install d:\helloWorld.apk // 安装d盘下的helloWorld.apk文件到名为emulator-5554的android设备中
adb shell am force-stop com.tencent.tmgp.pubgm // 结束所有用户空间下的包名com.tencent.tmgp.pubgm相关的信息
adb shell am dumpheap com.tencent.tmgp.pubgm /data/local/tmp/test.hprof // 保存com.tencent.tmgp.pubgm的java虚拟机内存文件test.hprof到/data/local/tmp目录中
adb shell mv /data/local/tmp/test.hprof /storage/emulated/0/Download // 移动test.hprof文件到内置sd卡的Download目录中,然后连上数据线就可以拷贝到电脑中
hprof-conv D:\temp\test.hprof D:\com.tencent.tmgp.pubgm_mat.hprof // 转换hprof文件为MemoryAnalyzer工具能解析的hprof文件格式
adb shell screencap -p /sdcard/screen.png // 截屏并screen.png并保存到手机的/sdcard目录下
adb pull /sdcard/screen.png ./ // 将手机的/sdcard/screen.png拷贝到PC上的当前目录
adb shell rm /sdcard/screen.png // 删除手机的/sdcard/screen.png文件
adb shell screenrecord --time-limit 10 --size 1280x720 --bit-rate 6000000 /sdcard/demo.mp4 //录制一个名为demo.mp4分辨率为1280*720比特率为6Mbps的10s视频,并保存在手机的/sdcard目录下
注1:支持Android4.4(API level 19)以上
注2:默认录制时间为180s,默认使用手机的分辨率,默认比特率为4Mbps
注3:某些设备可能无法直接录制,原因是分辨率太高,如果遇到此类问题,请试着指定较低的分辨率
注4:不支持录制过程中屏幕旋转,如果录制过程中旋转,有可能画面被切断
注5:录制视频的时候声音不会被录下来
Android用apk包生成过程
Android开发过程中的其他一些问题:
1. The connection to adb is down, and a severe error has occured.
2. You must restart adb and Eclipse.
3. D:\software-setup\dev\eclipse-juno\android\android-sdk\platform-tools\adb.exe' and can be executed.
参考:
adb kill-server
adb start-server
如果kill不掉的话,可以通过查找5037号端口的进程,然后用taskkill命令kill掉
netstat -ano | findstr "5037"
得到下列结果:
然后执行taskkill命令:
taskkill /f /pid 6300 /pid 7824
更多请参考:
windows开发环境搭建:
ubuntu开发环境搭建: