您的位置:首页 > 其它

【日常吐槽 · 第六期】安卓模拟器充当真机调试

2017-05-14 21:10 519 查看

【日常吐槽 · 第六期】安卓模拟器充当真机调试 By EOS.

最近一直在瞎搞、东西比较碎,不过主要是在研究 脚本批处理之类的,想着各种一键式操作。

而用模拟器来充当真机调试也是其中的一个环节,因为有涉及打安卓包到真机调试。

但是我又不想用手机来调,一是电脑一会手机晃的眼晕、二是一直运行游戏的,手机发热比较厉害。

另外还有一个好处,下载资源直接变成了拷贝,省去了下载的时间,调试起来快上不少。

起初

本来我是用模拟器下载下来,玩游戏的=、=,然而我发现并不好使用。然后准备卸载。

不过用来挂机还不错、省手机(发热损电池、还容易黄屏),然而还不如直接玩端游,

然而又没时间玩端游,所以还是学习吧~沉迷学习不要自拔。然后就卸载掉了。。。。

过了没多久又要真机调试、然后又把它下载回来了。。。正所谓事事难料。

然后开始研究用模拟器来调试 apk包,效果还不错~

至于eclipse 和 安卓studio带的模拟器,大而慢,辩而日,笑而不语。

mumu模拟器

起初我是用的 逍遥模拟器,感觉还不错,但是后来网易出了个mumu模拟器,

下载下来看了看,确实还不错。还有mac版的,作为客户端端,最喜欢的就是跨平台的。

因为不同的软件难免有不同的操作和快捷键、如果跨平台就减少了不少成本去熟悉两套东西,

用起来自己也舒服。毕竟mac和windows系统的快捷键,就让我们已经很混乱了。

(ps:重命名~我回车,啪! 我擦,怎么进去了。 ctl+w,点点点,怎么关不掉。。。)

下载下来mumu模拟器,第一个感觉就是干净。符合我的标准,我喜欢。

…..然后把逍遥模拟器,卸载了~就是这么无情。

然而鸡贼的网易,用adb devices的时候是看不到模拟器的。(mac 重启下adb,是可以看到的)

然后打开进程管理器。看到NemuHeadless.exe,大概率就是他了,查看下他连接的端口号

//tasklist | findstr xx  也可以看pid,就不用打开界面了

netstat -no | findstr 1184(PID) //查看pid占用的端口


发现是占用的22471, 然后

adb connect 127.0.0.1:22471
adb devices


本以为稳得很,然而却没有找到设备,哦买发克,于是我就去网上搜了搜,

结果搜到了mumu的论坛,也有人问同样的问题,结果工作人员竟然是私密回复的!!!

哦买发发发发克!!,靠人不如靠自己,“于是我就注册了一个号,问了同样的问题”吗?

怎么可能~ 于是我用nodepad++ 指定mumu的路径 开始全局搜素 22471。

果不其然,让我搜到了一个配置文件, myandrovm_vbox86.nemu 。

然后默默的搜了一波 adb,就一个字 “这波稳~”!



然后再重复一下 connect 7555, devices 果然可以看到模拟器了~唔哈~

本来想存一份,初始的安装包,怕以后越做越大,加广告啊什么的,历史总会惊人的想死。

然而一看是个下载器。。。网易果然鸡贼,古人诚不欺我。。。

adb 命令

1、先说下重新打包和安装,因为比较是从打包开始的嘛

system('打包命令')
//包出来了、清下包资源
system('adb shell pm clear com.games.es')
//卸载包
system('adb uninstall com.games.es')
//重新重新安装
system('adb install .\bin\debug\android\es-game-debug.apk')
//启动应用
system('adb shell am start com.games.es/org.cocos2dx.cpp.AppActivity')


2、再说说更新资源

因为一般都是用脚本语言,所以不改动c++代码的逻辑部分,直接把脚本和资源直接压到

一个目录,然后加上搜索路径就可以了。

//删除旧的
system('adb shell rm -rf /sdcard/es/')
//压入新的
system('adb push _tmp/ /sdcard/es/')
//把临时文件删掉。建议先拷贝一份再进行操作,永远不要动源文件,不然你会后悔的。。
system('rm -r _tmp/')


附加一段lua脚本的代码示例

if not InSDCard and cc.FileUtils:getInstance():isFileExist("/sdcard/es/src/main.luac") then
InSDCard = true
package.loaded["main"] = nil
cc.FileUtils:getInstance():purgeCachedEntries()
//这样只有sdcard路径下有资源的时候才会添加,减少正常情况下对搜索路径的遍历
//虽然影响微乎其微,但是还是要有好的习惯
cc.FileUtils:getInstance():addSearchPath("/sdcard/es/res", true)
cc.FileUtils:getInstance():addSearchPath("/sdcard/es/src", true)

return require "main"
end


3、其他常用adb命令

adb kill-server //看也知道是关闭adb
adb start-server  //看也知道是开启adb,不过一般都直接 adb devices就自己开启了

adb install/uninstall //上边提到了
adb push/pull //上边提到了 存到手机上和从手机上拷贝出来
adb shell //这个就厉害了 shell 的基本命令都能用
//比如搜个文件(不支持中文就比较尴尬了)
$>adb shell
$>find -name "*.luac" | grep "data"
$>exit

//还有两个命令
adb shell pm [package manager]  //包管理
adb shell am [activity manager] //活动管理。比较复杂,可以启动/关闭应用、进行广播等


结语

————完!

(ps:注视1分钟,你将不认识这个字)

(pps:如果你真的不认识了,可以搜索“可能这就是命吧”后边的这个词 “完形崩溃”)

See Again~

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息