博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android开发环境搭建(eclipse)
阅读量:5020 次
发布时间:2019-06-12

本文共 19101 字,大约阅读时间需要 63 分钟。

 

使用的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.com
203.208.46.146 dl-ssl.google.com
添加以上的网址,再选用http协议,就可以正常的进行更新了。
或者也可以什么都不做,过上一两天可能会恢复正常。
下边贴上使用Google各种服务在修改hosts文件时需要添加的内容。
#Google Service
#Chrome 网上应用
203.208.46.146 chrome.google.com
203.208.46.146 clients0.google.com
203.208.46.146 clients1.google.com
203.208.46.146 clients2.google.com
203.208.46.146 clients3.google.com
203.208.46.146 clients4.google.com
203.208.46.146 www.googleusercontent.com
203.208.46.146 lh0.googleusercontent.com
203.208.46.146 lh1.googleusercontent.com
203.208.46.146 lh2.googleusercontent.com
203.208.46.146 lh3.googleusercontent.com
203.208.46.146 lh4.googleusercontent.com
203.208.46.146 lh5.googleusercontent.com
203.208.46.146 lh6.googleusercontent.com
203.208.46.146 clients1.googleusercontent.com
203.208.46.146 clients2.googleusercontent.com
#网页快照
203.208.46.146 webcache.googleusercontent.com
#Google SSL
203.208.46.146 encrypted.google.com
203.208.46.146 encrypted.google.com.hk
#Google Docs
203.208.46.146 docs.google.com
203.208.46.146 docs0.google.com
203.208.46.146 docs1.google.com
203.208.46.146 docs2.google.com
203.208.46.146 docs3.google.com
203.208.46.146 spreadsheets.google.com
203.208.46.146 spreadsheets0.google.com
203.208.46.146 spreadsheets1.google.com
203.208.46.146 spreadsheets2.google.com
203.208.46.146 spreadsheets3.google.com
#Gmail
203.208.46.146 mail.google.com
203.208.46.146 chatenabled.mail.google.com #Gmail中Gtalk聊天服务
#Google 搜索
203.208.46.146 www.google.com
#Google preview
203.208.46.146 www.googlepreview.com
#Google 翻译
203.208.46.146 translate.google.com
203.208.46.146 translate.googleapis.com
#Google 搜索建议(IE9)
203.208.46.146 clients5.google.com
#Google Code
203.208.46.146 code.google.com
#Picasa 网络相册
203.208.46.146 picasaweb.google.com
203.208.46.146 lh0.ggpht.com
203.208.46.146 lh1.ggpht.com
203.208.46.146 lh2.ggpht.com
203.208.46.146 lh3.ggpht.com
203.208.46.146 lh4.ggpht.com
203.208.46.146 lh5.ggpht.com
203.208.46.146 lh6.ggpht.com
203.208.46.146 lh7.ggpht.com
203.208.46.146 lh8.ggpht.com
203.208.46.146 lh8.ggpht.com
203.208.46.146 lh9.ggpht.com
203.208.46.146 lh6.google.com
#Google 个人资料
203.208.46.146 profiles.google.com
203.208.46.146 browsersync.google.com
#Google+
203.208.46.146 talkgadget.google.com #Google+中的聊天服务
203.208.46.146 ssl.gstatic.com
203.208.46.146 images-pos-opensocial.googleusercontent.com
203.208.46.146 images1-focus-opensocial.googleusercontent.com
203.208.46.146 images2-focus-opensocial.googleusercontent.com
203.208.46.146 images3-focus-opensocial.googleusercontent.com
203.208.46.146 images4-focus-opensocial.googleusercontent.com
203.208.46.146 images5-focus-opensocial.googleusercontent.com
203.208.46.146 images6-focus-opensocial.googleusercontent.com
203.208.46.146 plus.google.com
#Download 下载
203.208.46.146 dl.google.com
203.208.46.146 dl-ssl.google.com
#Groups
203.208.46.146 groups.google.com
#Google URL Shortener
203.208.46.146 goo.gl
#Google App Engine
203.208.46.146 appengine.google.com
#Android Developer
74.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.com
203.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.3
Android SDK Platform 4.0
Android SDK Platform 3.2 revision 1
Android SDK Platform 3.1 revision 3
Android SDK Platform 3.0, revision 2
Android SDK Platform 2.3.3_r2
Android SDK Platform 2.3.1_r2
Android SDK Platform 2.2_r3
--- OLDER LINKS (Still working) ---
Android SDK Platform Honeycomb Preview, revision 1
Android SDK Platform 2.3.3_r1 (Offline complete download) - Approx 80 MB
Android SDK Platform 2.3_r1 (Offline complete download) - Approx 80 MB
Android SDK Platform 2.2_r2 (Offline complete download) - Approx 80 MB
Android SDK Platform 2.1_r1 (Offline complete download) - Approx 80 MB
Android SDK Platform 2.0.1_r1 (Offline complete download) - Approx 80 MB
Android SDK Platform 2.0, revision 1 (Offline complete download) - Approx 80 MB
Android SDK Platform 1.6_r2  (Offline complete download) - Approx 63 MB
Android SDK Platform 1.5_r3  (Offline complete download) - Approx 54 MB
Android 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 Proc
25672 30878 u0_a223 10 -10 6% S 1931316K 493784K ta RenderNico com.tencent.tmgp.pubgm
25672 25701 u0_a223 10 -10 4% S 1931316K 493784K ta GameNico com.tencent.tmgp.pubgm
25672 25918 u0_a223 10 -10 1% S 1931316K 493784K ta NativeThread com.tencent.tmgp.pubgm

adb 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 Name
25672 u0_a223 10 -10 15% S 100 1933236K 504644K ta com.tencent.tmgp.pubgm

adb 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      seconds
Max file size    unlimited      unlimited      bytes
Max data size    unlimited      unlimited      bytes
Max stack size  8388608       unlimited      bytes
Max core file size 0          unlimited      bytes
Max resident set   unlimited     unlimited      bytes
Max processes  22097       22097        processes
Max open files  4096       4096        files
Max locked memory 67108864    67108864         bytes
Max address space unlimited      unlimited      bytes
Max file locks unlimited        unlimited      locks
Max pending signals 22097      22097       signals
Max msgqueue size 819200       819200        bytes
Max nice priority   40      40
Max realtime priority  0                   0
Max realtime timeout unlimited       unlimited                 us

adb 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的时候才会出现OOM

adb 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 0
0 0 0
... ...
0 0 0
418243456489096 418243468251857 418243457645242
418243480331232 418243484980451 418243481196024
418243577706857 418243585352586 418243579044565
418318173790110 418318176869276 418318174024745
418326274237294 418326288588388 418326275332919

adb 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开发环境搭建

 

转载于:https://www.cnblogs.com/kekec/archive/2012/05/22/2513058.html

你可能感兴趣的文章
【bzoj2002】弹飞绵羊
查看>>
react-native使用蚂蚁金服的antd-mobile组件库教程
查看>>
Oracle错误代码大全
查看>>
可遇不可求的Question之MySQL系统变量interactive_timeout 与 wait_timeout 篇
查看>>
【转】自九度论坛的一个帖子
查看>>
JavaScript表单验证
查看>>
JTextField限制 输入数字 【转】
查看>>
两个线程交替打印1-100
查看>>
初学Numpy(二)
查看>>
Spring Cacheable 注解不缓存null值
查看>>
kettle闪退问题
查看>>
replace to
查看>>
BZOJ1095 [ZJOI2007]Hide 捉迷藏 【动态点分治 + 堆】
查看>>
用RIPv2实现网络区域的互通
查看>>
CAShapeLayer和CAGradientLayer
查看>>
iOS NSData
查看>>
设置波特率USBCAN-2E-U与USBCAN-II的使用区别
查看>>
按层空间复杂度Populating Next Right Pointers in Each Node II
查看>>
struts2官方入门案列curd 编辑
查看>>
基于智能手机的3D地图导航
查看>>