您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
08_案例1 android下的电话拨号器-真机测试
发布时间:2021-01-31 17:12:32编辑:雪饮阅读()
要想在真机上测试效果,有很多方法,这里就以将apk拷贝到真机上进行测试为例
首先apk的位置可以在这里找到
如果你在模拟器中运行过一次后就会产生于build/outputs/apk/debug中
但是这个文件真的可用吗?不一定
Android studio打包apk
既然这样直接从build/outputs/apk/debug中拷贝的不可以正常安装,那么就要想办法打包一个正常的可以安装的apk了。
选择apk
Key的存储路径如果之前有创建过就直接选择,如果直接没有创建过就创建一个,创建时候可以选择文件夹也可以在选择的文件夹中创建子文件夹并选择,然后随便输入一个文件名
在new key store时候主要就是存储路径、还有两对密码和一个first and last name
其它无所谓,这里这两对密码,尽量设置都相同,免得你后面如果有用到就忘了
我这里是直接在第一对密码后面分别补一个01作为第二对密码,哈哈
在点击ok的时候可能会有一个弹窗,提示了一个小错误,好像是推荐用什么最新的一个什么工具,但是好像并没有什么影响。
然后next,并在接下来的界面选择release类型,并且签名类型将v1和v2都勾选
接下来点击finish,经过一段时间就构建完成
点击这个右下角generate signed APK这个下拉按钮
然后在点击下拉展开之后立马的locate就可以定位到构建之后的这个apk所在目录了
然后该目录中的release目录中的apk文件就是最终构建出来的apk文件了
然后拷贝到你手机中就可以安装成功了
Asm.jar实现安卓手机屏幕共享到电脑上
这里其实有一个大坑
首先设备肯定要连接的啊,起初我用文件传输方式连接的(...)
这个好像是驱动的选项还是文件传输的选项,反正就这两个的那一个,我都错了。。。错的离谱。。
其实这样是不对的,这个下面再说,接下来就是这个ASM工具
这个asm.jar我下载的是ASM_3_00.zip,据说也还算是较新吧
然后解压之后我就运行啊
竟然出现如此错误,据说是因为SDK Tools没有安装问题,但是我检查发现我的SDK Tools是安装的,我在android中看到的,不过有一个SDK Command-line Tools的确没有安装,从字面意思理解,这个应该是要运行在命令行的,那么根据这里的情况那么好像有点道理,就安装猜想安装了这个命令的版本
结果还是不行,最后我猜测它该不会是依赖adb.exe这个东东或者是platform-tools中某些东西,于是乎
看来没有错,的确是依赖platform-tools这个目录的,具体依赖什么就补清楚了,不过现在带来了新问题,就是打开后一直黑屏,并且命令行控制台中一直打印一个错误信息
然后怀疑是不是我安装的SDK Tools(非命令行版本,因为上面发现与命令行无关)版本不够高,于是乎又开始升级SDK Tools了
升级后还是不行,这次又怀疑是SDK Build-Tools了,于是乎又升级(现在想想真可笑,从Build这个词的意思大概就是与编译之类有关,而我们的需求好像只是类似投屏),果不其然,最后还是打脸了。
其实在上面第一次运行ASM失败后每次尝试升级的同时也尝试了执行androidscreencast-0.0.12s-executable.jar,因为看资料说是用这个可以解决,结果都是宣告失败的,并且androidscreencast-0.0.12s-executable.jar资源是从一个github上面下载的,也尝试了其最新版本都是失败的,不过最后我无意间在该github上面看到了一个与jdk相关的东西,大概是说要jdk1.8,那么我就想是不是要java8,于是乎就下载了java8,果不其然,这次可以了(不过下载java8过程中真的是要吐槽,为了方便我直接从国内某个站点下载的java8,结果安装之后好像我电脑上就多了一个叫万能输入法的东西。。。),既然可以打开该工具后,我们选择如图的第一个连接,这个连接就是adb 调试我们手机设备的adb连接,第二个从字面上就能理解,是模拟器,因为我这里android studio打开着并且运行了一个安卓虚拟机。
关于这个adb连接,这里多说一句,就是上面开始处说的那个手机以文件传输连接到电脑的错误做法,我们在上面说要在后面说,那么就是指这里了
关于adb调试,在真机上调试要用到的是usb调试,关于usb调试,一般需要在手机的设置中去找,那么不同手机位置也不同,为了方便起见,推荐一个软件,就是下面这个软件USB Debug,在google商店上能找到,找到后下载并安装打开后就直接定位到usb调试了,我们要把usb调试开关给勾选,让其可以调试
然后手机检测到数据线连接在某个电脑上时候就会出现如下,按照提示同意它即可
既然屏幕可以共享了,那么其实简单操作,在该工具上就可以完成,那么我们找到我们安装的那个软件(在应该管理里面)看到起信息,我们首先要做的就是将我们之前编写的那个打电话功能的权限给勾选让其拥有打电话功能
但是你会神奇的发现竟然没有那个权限列表清单了。。。
接下来继续探索时候发现手机与电脑上显示的画面竟然不同步了,而且并非延迟,并且电脑上显示的画面对应的命令行处有一些错误信息,这可能是因为我觉得从电脑这边去操作有点响应慢,所以直接去操作手机,结果手机操作过快导致的?后来又尝试手机和电脑轮流操作,也可能是因为一会儿操作手机一会操作电脑导致的紊乱,但我更怀疑是电脑端操作不稳定的原因。最后我命令行直接中断并重启都不行,然后我又怀疑是不是我android studio中还开了一个模拟器,会不会因为该工具同时监听到两个连接,导致类似ip广播那种性能消耗问题,即便模拟器我们没有连接进去?于是我直接把模拟器关机了,再次重启竟然也不行,好吧,最后我又直接把Android studio都关闭了,结果仍旧不行,最后折腾了几次后,我怀疑可能还是与Android studio被关有关系,具体是为什么这么怀疑,可能是直觉吧,不太好说,反正重新开启Android studio,然后会发现竟然识别了我的设备(魅族16T)
并重启刚才的命令行命令的执行就又恢复了,这次我就一直只操作手机了,不操作电脑端,电脑端仅仅负责显示,就是怕出问题,那么接下来我就想到刚才我们没有找到那个电话拨打的权限勾选位置,会不会是在当我们点击拨打的时候才会出现弹窗之类的。
实际上我这样试了之后程序就直接显示到安卓的桌面了,没有任何反应
好吧,其实那个权限勾选的位置,可能因为安卓版本不同(安卓很乱的,各个厂家会各种阉割重定义并且就算不被各个厂商阉割定义,不同的安卓版本也会出现各种界面ui位置不同),而我的是魅族16t,它的位置在手机管家里面
然后这个权限管理里面,然后这个应用权限里面
然后找到自己刚才安装的这个应用,点击进去
然后这里就可以看到有个电话了,点击进入电话里面
然后就看到这个拨打电话的勾选了,我们将其勾选
然后再次来到我们的应用中进行拨号
因为我有两个卡,所以这里弹出了两个卡,我就选择卡2吧,卡1是我的物联卡
这样以来真机测试就ok了
权限
其实在最上面我们成功安装了我们的软件后你可以看到那个界面上有一个“管理权限配置”,如果你点击它可以进入如下界面,也可以看到一个权限详情,用来告知警醒用户该app的一些行为,特别是红色字体。。
那么这东西呢,在一些低版本安卓上面,安装过程中会直接弹出来的,或者说是没有被阉割的版本,或许是魅族做了这个修改的,所以我这里才会显示的比较保密一点。那么一般开发时候是直接通过android studio运行到模拟器的,或者如果是通过usb调试安装到实体机的时候实体机要在未知来源上允许运行才可以的
这个图是低版本安卓和对应在eclipse上开发在模拟器上呈现的,而android studio上面我是没有看到这样的,毕竟默认就智能识别了我们是在做开发就没有限制(这不废话。。。),当然也可能是因为安卓版本高等其它问题,就不一一去追踪了。
那么如果将app拷贝到android studio的sd卡中,然后手动在虚拟机上以正常人的方式安装该软件会怎样呢?
当你安卓虚拟机开机后,系统加载完毕了,则会有设备资源管理的选项卡打开可以进入该设备资源管理器
我们定位到该虚拟机的下载文件这个目录中然后可以通过upload上传我们电脑上面的文件,那么我们就选择我们开发的这个app
这样就上传成功了
我们再看看虚拟机中files
打开后默认就是下载文件目录并且已经有了我们上传过来的文件
然后我们以正常人的姿态来安装该应用,会发现它就会有许多的交互了,一路默认同意下去哦
接下来,你同意后会有一个安装进度,有点慢,可能我电脑慢,我一度差点以为又出现问题了,其实不然,只要耐心,最后还是安装完成了
所以这里总结下:
一般开发下,我们直接运行进去的就有点相当于usb调试模式允许未知来源(usb调试并且允许未知来源时候会静默安装)的静默安装,而静默安装是直接隐藏了安装过程,则像是魅族那种安装过程虽然有点隐晦的界面都无法看到,这比魅族这种对于用户更危险,用户根本不能显式知道app都做了些什么,没有付费的提示界面,就不是特别的安全,万一要作恶呢?后台偷偷进行付费服务,耗费用户的金钱呢。
关键字词:android,真机测试
下一篇:08_点击事件的几种写法