精华内容
下载资源
问答
  • 本资源为一个定点提醒项目,APP代码,请配合服务端代码一起使用 APP配置: 修改服务器地址:src\main\java\com\yaojian\arrivingstation\http\HttpHelper --> SERVICE_URL
  • 蘑菇丁APP定位签到.exe

    2020-01-21 21:23:33
    蘑菇丁APP签到定位,解决实习生顶岗实习中定位签到的问题,电脑打开exe运行文件,输入蘑菇丁上的用户名和密码,再输入签到的位置即可定位到那个地址上进行签到。
  • Fake Location是一款可以修改手机定位app软件,使用起来也非常简单 ~ 用处: 上班公司打卡永不缺勤迟到 微信、陌陌、探探等社交软件搜索更多附近人 隐藏真实位置信息 可参考官方使用技巧文档: ...

    转载自师兄处:https://blog.csdn.net/qq_38225558/article/details/97294740

    一、前言

    Fake Location是一款可以修改手机定位的app软件,使用起来也非常简单 ~

    用处:
    1. 上班公司打卡永不缺勤迟到
    2. 微信、陌陌、探探等社交软件搜索更多附近人
    3. 隐藏真实位置信息

    可参考官方使用技巧文档:https://github.com/Lerist/fakelocation.github.io/blob/master/FAQ/zh/FAQ.md

    二、Fake Location 安装使用教程

    (1)app下载:https://www.coolapk.com/apk/com.lerist.fakelocation

    (2)安装运行

    在这里插入图片描述
    使用很简单,选择位置 -> 启动模拟即可!

    部分手机需要开启root权限,或者不用开启root权限,进入手机设置开启开发者选项即可使用 ~
    在这里插入图片描述

                                    </div>
                <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e44c3c0e64.css" rel="stylesheet">
                    </div>
    </article>
    
    展开全文
  • APP软件测试总结

    千次阅读 2017-02-20 09:25:38
    3)对App的输入有效性校验、认证、授权、数据加密等方面进行检测 4)限制/允许使用手机功能接入互联网 5)限制/允许使用手机发送接收信息功能 6)限制或使用本地连接 7)限制/允许使用手机拍照或录音 8)限制/...

    收录一篇APP软件测试的方法总结,原文地址

    一、安全测试

    1.软件权限
    1)扣费风险:包括短信、拨打电话、连接网络等。
    2)隐私泄露风险:包括访问手机信息、访问联系人信息等。
    3)对App的输入有效性校验、认证、授权、数据加密等方面进行检测
    4)限制/允许使用手机功能接入互联网
    5)限制/允许使用手机发送接收信息功能
    6)限制或使用本地连接
    7)限制/允许使用手机拍照或录音
    8)限制/允许使用手机读取用户数据
    9)限制/允许使用手机写入用户数据
    10)限制/允许应用程序来注册自动启动应用程序
    2.安装与卸载安全性
    1)应用程序应能正确安装到设备驱动程序上
    2)能够在安装设备驱动程序上找到应用程序的相应图标
    3)安装路径应能指定
    4)没有用户的允许,应用程序不能预先设定自动启动
    5)卸载是否安全,其安装进去的文件是否全部卸载
    6)卸载用户使用过程中产生的文件是否有提示
    7)其修改的配置信息是否复原
    8)卸载是否影响其他软件的功能
    9)卸载应该移除所有的文件
    3.数据安全性
    1)当将密码或其它的敏感数据输入到应用程序时,其不会被存储在设备中,同时密码也不会被解码。
    2)输入的密码将不以明文形式进行显示。
    3)密码、信用卡明细或其他的敏感数据将不被存储在它们预输入的位置上。
    4)不同的应用程序的个人身份证或密码长度必须至少在4-8个数字长度之间。
    5)当应用程序处理信用卡明细或其它的敏感数据时,不以明文形式将数据写到其他单独的文件或者临时文件中。以防止应用程序异常终止而又没有删除它的临时文件,文件可能遭受入侵者的袭击,然后读取这些数据信息。
    6)党建敏感数据输入到应用程序时,其不会被存储在设备中。
    7)应用程序应考虑或者虚拟机器产生的用户提示信息或安全警告
    8)应用程序不能忽略系统或者虚拟机器产生的用户提示信息或安全警告,更不能在安全警告显示前,利用显示误导信息欺骗用户,应用程序不应该模拟进行安全警告误导用户。
    9)在数据删除之前,应用程序应当通知用户或者应用程序提供一个“取消”命令的操作。
    10)应用程序应当能够处理当不允许应用软件连接到个人信息管理的情况。
    11)当进行读或写用户信息操作时,应用程序将会向用户发送一个操作错误的提示信息。
    12)在没有用户明确许可的前提下不损坏删除个人信息管理应用程序中的任何内容。
    13)如果数据库中重要的数据正要被重写,应及时告知用户。
    14)能合理的处理出现的错误。
    15)意外情况下应提示用户。
    4.通讯安全性
    1)在运行软件过程中,如果有来电、SMS、蓝牙等通讯或充电时,是否能暂停程序,优先处理通信,并在处理完毕后能正常恢复软件,继续其原来的功能。
    2)当创立连接时,应用程序能够处理因为网络连接中断,进而告诉用户连接中断的情况。
    3)应能处理通讯延时或中断。
    4)应用程序将保持工作到通讯超时,进而给用户一个错误信息指示有链接错误。
    5)应能处理网络异常和及时将异常情况通报用户。
    6)应用程序关闭网络连接不再使用时应及时关闭,断开。
    5.人机接口安全测试
    1)返回菜单应总保持可用。
    2)命令有优先权顺序。
    3)声音的设置不影响使用程序的功能。
    4)声音的设置不影响应用程序的功能
    5)应用程序必须能够处理不可预知的用户操作,例如错误的操作和同时按下多个键。

    二、安装、卸载测试

    验证App是否能正确安装、运行、卸载、以及操作过程和操作前后对系统资源的使用情况
    1.安装
    1)软件安装后是否能够正常运行,安装后的文件夹以及文件是否写到了指定的目录里。
    2)软件安装各个选项的组合是否符合概要设计说明。
    3)软件安装向导的UI测试
    4)安装后没有生成多余的目录结构和文件。
    2.卸载
    1)测试系统直接卸载程序是否有提示信息。
    2)测试卸载后文件是否全部删除所有的安装文件夹。
    3)卸载是否支持取消功能,单击取消后软件卸载的情况。
    4)系统直接卸载UI测试,是否有卸载状态进度条提示。

    三、UI测试

    1)测试用户界面(如菜单、对话框、窗口和其他控件)布局、风格是否满足要求、文字是否正确、页面是否美观、文字、图片组合是否完美、操作是否友好等。
    2)UI测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。确保用户界面符合公司或行业的标准。包括用户友好性、人性化、易操作性测试。
    1.导航测试
    1)按钮、对话框、列表和窗口等;或在不同的连接页面之间需要导航。
    2)是否易于导航,导航是否直观。
    3)是否需要搜索引擎。
    4)导航帮助是否准确直观。
    5)导航与页面结构、菜单、连接页面的风格是否一致。
    2.图形测试
    1)横向比较,各控件操作方式统一。
    2)自适应界面设计,内容根据窗口大小自适应。
    3)页面标签风格是否统一。
    4)页面是否美观。
    5)页面的图片应有其实际意义而要求整体有序美观。
    3.内容测试
    1)输入框说明文字的内容与系统功能是否一致。
    2)文字长度是否加以限制。
    3)文字内容是否表意不明。
    4)是否有错别字。
    5)信息是否为中文显示。

    四、功能测试

    根据软件说明或用户需求验证App的各个功能实现,采用如下方法实现并评估功能测试过程:
    1)采用时间、地点、对象、行为和背景五元素或业务分析等方法分析、提炼App的用户使用场景,对比说明或需求,整理出内在、外在及非功能直接相关的需求,构建测试点,并明确测试标准。
    2)根据被测功能点的特性列出相应类型的测试用例对其进行覆盖,如:设计输入的地方需要考虑等价、边界、负面、异常、非法、场景回滚、关联测试等测试类型对其进行覆盖。
    3)在测试实现的各个阶段跟踪测试实现与需求输入的覆盖情况,及时修正业务或需求理解错误。
    1.运行
    1)App安装完成后的试运行,可正常打开软件。
    2)App打开测试,是否有加载状态进度提示。
    3)App页面间的切换是否流畅,逻辑是否正确。
    4)注册
    同表单编辑页面
    用户名密码长度
    注册后的提示页面
    前台注册页面和后台的管理页面数据是否一致
    注册后,在后台管理中页面提示
    5)登录
    使用合法的用户登录系统
    系统是否允许多次非法的登录,是否有次数限制
    使用已经登录的账号登录系统是否正确处理
    用户名、口令(密码)错误或漏填时能否登陆
    删除或修改后的用户,原用户名登陆
    不输入用户口令和重复点“确定/取消”按钮,是否允许登录
    登陆后,页面中登录信息
    页面中有注销按钮
    登录超时的处理
    2.应用的前后台切换
    1)App切换到后台,再回到App,检查是否停留在上一次操作界面。
    2)App切换到后台,再回到App,检查功能及应用状态是否正常。
    3)App切换到后台,再回到前台时,注意程序是否崩溃,功能状态是否正常,尤其是对于从后台切换回前台数据有自动更新的时候。
    4)手机锁屏解锁后进入App注意是否会崩溃,功能状态是否正常,尤其是对于从后台切换回前台数据有自动更新的时候。
    5)当App使用过程中有电话进来中断后再切换到App,功能状态是否正常。
    6)当杀掉App进城后,再开启App,App能否正常启动。
    7)出现必须处理的提示框后,切换到后台,再切换回来,检查提示框是否还存在,有时候会出现应用自动跳过提示框的缺陷。
    8)对于有数据交换的页面,每个页面都必须要进行前后台切换、锁屏的测试,这种页面最容易出现崩溃。
    3.免登陆
    很多应用提供免登陆功能,当应用开启时自动以上一次登录的用户身份来使用App。
    1)考虑无网络情况时能否正常进入免登录状态。
    2)切换用户登陆后,要校验用户登录信息以及数据内容是否相应更新,确保原用户退出。
    3)根据Mtop的现有规则,一个账户只允许登陆一台机器。所以,需要检查一个账户登录多台手机的情况。原手机里的用户需要被退出,给出友好提示。
    4)App切换到后台,在切换回前台的校验。
    5)切换到后台,再切换回到前台的测试。
    6)密码更换后,检查有数据交换时是否进行了有效身份的校验。
    7)支持自动登录的应用在进行数据校验时,检查系统是否能自动登录成功并且数据操作无误。
    8)检查用户主动退出登录后,下次启动App,应停留在登录界面。
    4.离线浏览
    很多应用会支持离线浏览,即在本地客户端会缓存一部分数据供用户查看。
    1)在无线网络情况可以浏览本地数据。
    2)退出App再开启App时能正常浏览。
    3)切换到后台再回到前台可以正常浏览。
    4)锁屏后再解锁回到应用前台可以正常浏览。
    5)在对服务器段的数据有更新时回给予离线的相应提示。
    5.App更新
    1)当客户端有新版本时,有更新提示。
    2)当版本为非强制升级版时,用户可以取消更新,老版本能正常使用。用户在下次启动App时,仍出现更新提示。
    3)当版本为强制升级版时,但给出强制更新后用户没有做更新时,退出客户端。下次启动App时,仍出现强制升级提示。
    4)当客户端有新版本时,在本地不删除客户端的情况下,直接更新检查是否能正常更新。
    5)当客户端有新版本时,在本地不删除客户端的情况下,检查更新后的客户端功能是否是新版本。
    6)当客户端有新版本时,在本地不删除客户端的情况下,检查资源同名文件如图片是否能正常更新成最新版本。如果以上无法更新成功的,也都属于缺陷。
    6.定位、照相机服务
    1)App有用到相机,定位服务时,需要注意系统版本差异。
    2)有用到照相机服务的地方,需要进行前后台的切换测试,检查应用是否正常。
    3)测试照相机服务时,需要采用真机进行测试。
    7.PUSH测试
    1)检查Push消息是否按照指定的业务规则发送。
    2)检查不接收推送消息时,用户不会在接收到Push消息。
    3)如果用户设置了免打扰的时间段,检查在免打扰时间段内,用户接收不到Push。在非免打扰时间段内,用户能正常收到Push。
    4)当Push消息是针对登录用户的时候,需要检查收到的Push与用户身份是否相符,没有错误的将其他人的消息推送过来。一般情况下,只对手机上最后一个登录用户进行消息推送。
    5)测试Push时,需要采用真机进行测试。

    五、性能测试

    1)响应能力测试:测试App中的各类操作是否满足用户响应时间要求。
    App安装、卸载的响应时间
    App各类功能性操作的响应时间
    2)压力测试,反复/长期操作下,系统资源是否占用异常。
    App反复进行安装卸载,检查系统资源是否正常
    其他功能反复进行操作,检查系统资源是否正常
    六、交叉事件测试
    针对智能终端应用的服务等级划分方式及实时特性所提出的测试方法。交叉测试又叫事件或冲突测试,是指一个功能正在执行过程中,同时另外一个事件或操作对该过程进行干扰的测试。如:App在前/后台运行状态时与来电、文件下载、音乐收听等关键运用的交互情况测试等。
    交叉事件测试非常重要,能发现很多应用中潜在的性能问题。
    1)多个App同时运行是否影响正常功能。
    2)App运行时前/后台切换是否影响正常功能。
    3)App运行时拨打/接听电话。
    4)App运行时发送/接收信息。
    5)App运行时发送/收取邮件。
    6)App运行时浏览网络。
    7)App运行时使用蓝牙传送/接收数据。
    8)App运行时使用相机、计算器等手机自带设备。
    七、兼容测试
    主要测试内部和外部兼容性
    1)与本地及主流App是否兼容
    2)与各种设备是否兼容,若有跨系统支持则需要检验是否在个系统下,各种行为是否一致。
    不同手机屏幕分标率的兼容性
    不同手机品牌的兼容性
    八、回归测试
    1)Bug修复后且在新版本发布后需要进行回归测试。
    2)Bug修复后的回归测试在交付前、要进行大量用例的回归测试。
    九、用户体验测试
    以主观的普通消费者的角度去感知产品或服务的舒适、有用、易用、友好亲切程度。通过不同个体、独立空间和非经验的统计复用方式去有效评价产品的体验特性,提出修改意见提升产品的潜在客户满意度。
    1)是否有空数据界面设计,引导用户去执行操作。
    2)是否滥用用户引导。
    3)是否有不可点击的效果,如:你的按钮此时处于不可用状态,那么一定要灰掉,或者拿掉按钮,否则会给用户误导。
    4)菜单层次是否太深。
    5)交互流程分支是否太多。
    6)相关的选项是否离的很远。
    7)一次是否载入太多的数据。
    8)界面中按钮可点击范围是否适中。
    9)标签页是否跟内容没有从属关系,当切换标签的时候,内容跟着切换。
    10)操作应该有主次从属关系。
    11)是否定义Back的逻辑。涉及软硬件交互时,Back键应具体定义。
    12)是否有横屏模式的设计,应用一般需要支持横屏模式,即自适应设计。
    十、手势操作测试
    1)手机开锁屏对运行中的App的影响。
    2)运行中的App前后台切换的影响。
    3)多个运行中的App的切换。
    4)App运行时关机。
    5)App运行时重启系统。
    6)App运行时充电
    7)App运行时Kill掉进程再打开
    十一、客户端数据库测试
    1)一般的增、删、改、查测试。
    2)当表不存在时是否能自动创建,当数据库表被删除后能否再自建,数据是否还能自动从服务器中获取回来并保存。
    3)在业务需要从服务器端取回数据保存到客户端的时候,客户端能否将数据保存到本地。
    4)当业务需要从客户端取数据时,检查客户端数据存在时,App数据是否能自动从客户端数据中取出,还是仍然会从服务器端获取?检查客户端数据不存在时,App数据能否自动从服务器端获取到并保存到服务器端。
    5)当业务对数据进行了修改、删除后,客户端和服务器端是否会有相应的更新。

    展开全文
  • Android 天气APP(二)获取定位信息

    千次阅读 热门讨论 2020-04-07 16:29:48
    获取当前所在位置信息① 绑定控件② Android版本判断③ 权限申请④ 初始化LocationClient类⑤ 实现BDAbstractLocationListener接口⑥ 显示定位结果 二、编写代码 1. 获取当前所在位置信息 先修改activity_main.xml...

    上一篇:Android 天气APP(一)开发准备

    二、编写代码

    1. 获取当前所在位置信息

    先修改activity_main.xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:gravity="center"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    	<!--显示详细定位信息-->
        <TextView
            android:id="@+id/tv_address_detail"
            android:padding="20dp"
            android:gravity="center"
            android:textColor="#000"
            android:textSize="18sp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Hello World!" />
    
    </LinearLayout>
    

    ① 绑定控件

    然后进入到MainActivity.java
    鼠标右键点击布局文件activity_main 选择Generate
    在这里插入图片描述

    在这里插入图片描述
    现在就可以用这个插件,点击红色边框中的Generate ButterKnife Iniertions
    在这里插入图片描述
    然后Confirm提交即可
    在这里插入图片描述

    ② Android版本判断

    之前提到Android6.0之后有运行时权限这么一说,所以要先判断是什么版本。在这之前先写一个Toast工具类。
    新建了一个utils包用于存放工具类。
    在这里插入图片描述

    工具类代码如下:

    package com.llw.goodweather.utils;
    
    import android.content.Context;
    import android.widget.Toast;
    
    /**
     * 消息提示工具类
     */
    public class ToastUtils {
        public static void showLongToast(Context context, CharSequence llw) {
            Toast.makeText(context.getApplicationContext(), llw, Toast.LENGTH_LONG).show();
        }
    
        public static void showShortToast(Context context, CharSequence llw) {
            Toast.makeText(context.getApplicationContext(), llw, Toast.LENGTH_SHORT).show();
        }
    }
    

    然后在代码中做版本业务逻辑的判断。

    	//权限判断
        private void permissionVersion(){
            if(Build.VERSION.SDK_INT >= 23){//6.0或6.0以上
                //动态权限申请
                
            }else {//6.0以下
                //发现只要权限在AndroidManifest.xml中注册过,均会认为该权限granted  提示一下即可
                ToastUtils.showShortToast(this,"你的版本在Android6.0以下,不需要动态申请权限。");
            }
        }
    

    之后在onCreate方法中调用

    	@Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            ButterKnife.bind(this);
    
            permissionVersion();//权限判断
        }
    

    ③ 权限申请

    	private RxPermissions rxPermissions;//权限请求框架
    
    	@Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            ButterKnife.bind(this);
    
            rxPermissions = new RxPermissions(this);//实例化这个权限请求框架,否则会报错
            permissionVersion();//权限判断
    
        }
    
    	//动态权限申请
        private void permissionsRequest() {
            rxPermissions.request(Manifest.permission.ACCESS_FINE_LOCATION)
                    .subscribe(granted -> {
                        if (granted) {//申请成功
                            //得到权限之后开始定位
    
                        } else {//申请失败
                            ToastUtils.showShortToast(this, "权限未开启");
                        }
                    });
        }
    

    接下来在 permissionVersion 方法里面进行权限的申请
    在这里插入图片描述

    这个思路就相当的清晰了,一环扣一环,这样写的好处是便于理解,千万不要把什么东西都往onCreate里面塞,那样不仅增加代码阅读难度,也会提高BUG出现的频率。

    ④ 初始化LocationClient类

    请在主线程中声明LocationClient类对象,该对象初始化需传入Context类型参数。

    	//定位器
        public LocationClient mLocationClient = null;
        private MyLocationListener myListener = new MyLocationListener();
    
    	//开始定位
        private void startLocation() {
            //声明LocationClient类
            mLocationClient = new LocationClient(this);
            //注册监听函数
            mLocationClient.registerLocationListener(myListener);
            LocationClientOption option = new LocationClientOption();
    
            //如果开发者需要获得当前点的地址信息,此处必须为true
            option.setIsNeedAddress(true);
            //可选,设置是否需要最新版本的地址信息。默认不需要,即参数为false
            option.setNeedNewVersionRgc(true);
            //mLocationClient为第二步初始化过的LocationClient对象
            //需将配置好的LocationClientOption对象,通过setLocOption方法传递给LocationClient对象使用
            mLocationClient.setLocOption(option);
            //启动定位
            mLocationClient.start();
    
        }
    

    这时,你会发现myListener会有红线报错,是因为我们没有实现这个接口,下面来实现,这个方法和onCreate是平级的,你只要是写在MainActivity的{}里面,想放那里就放那里

    ⑤ 实现BDAbstractLocationListener接口

    	/**
         * 定位结果返回
         */
        private class MyLocationListener extends BDAbstractLocationListener {
            @Override
            public void onReceiveLocation(BDLocation location) {
                double latitude = location.getLatitude();    //获取纬度信息
                double longitude = location.getLongitude();    //获取经度信息
                float radius = location.getRadius();    //获取定位精度,默认值为0.0f
                String coorType = location.getCoorType();
                //获取经纬度坐标类型,以LocationClientOption中设置过的坐标类型为准
                int errorCode = location.getLocType();//161  表示网络定位结果
                //获取定位类型、定位错误返回码,具体信息可参照类参考中BDLocation类中的说明
                String addr = location.getAddrStr();    //获取详细地址信息
                String country = location.getCountry();    //获取国家
                String province = location.getProvince();    //获取省份
                String city = location.getCity();    //获取城市
                String district = location.getDistrict();    //获取区县
                String street = location.getStreet();    //获取街道信息
                String locationDescribe = location.getLocationDescribe();    //获取位置描述信息
                tvAddressDetail.setText(addr);//设置文本显示
            }
        }
    

    ⑥ 显示定位结果

    permissionsRequest() 方法中得到权限后调用定位方法,定位得到数据后在监听器里返回详细地址。
    在这里插入图片描述
    运行一下,请运行在自己的手机上,别使用虚拟机和模拟器(PS: 如果你运行报错了,请把你的错误信息贴出来,我好判断是什么问题)

    在这里插入图片描述
    点击 仅使用期间允许或者始终允许 之后就可以得到定位地址了。
    在这里插入图片描述
    现在位置已经拿到了,接下来就是通过这个位置来查询当天的天气了。如果你运行之后没有拿到地址,并且你已经打开了手机的定位开关和网络连接。那么此时你肯定是用模拟器或者虚拟机运行的,定位SDK中不适配模拟器和虚拟机,所以请使用真机运行

    源码地址:https://github.com/lilongweidev/GoodWeather
    (由于CSDN技术问题,我暂时用不了超链接了)
    欢迎 StarFork

    下一篇:Android 天气APP(三)访问天气API与数据请求

    展开全文
  • 手机APP软件测试点详解

    千次阅读 2017-07-26 17:19:01
    APP测试有很多方面需要考虑到,我列几点有明显特征的: 功能测试:手机软件的基本功能。倒不一定完全由测试人员来完全执行,但却是所有测试中最重要的,需要测试人员做很好的测试策略和职责划分。 稳定性测试:...
    APP测试有很多方面需要考虑到,我列几点有明显特征的:
    
    • 功能测试:手机软件的基本功能。倒不一定完全由测试人员来完全执行,但却是所有测试中最重要的,需要测试人员做很好的测试策略和职责划分。
    • 稳定性测试:大多数手机应用是需要保证能够稳定运行一定时间的(尤其是对于一些记事类应用),而且在应用的运行状态发生切换后需要继续保持当前的状态,不出现闪退。
    • 性能测试:这部分分为两个方面,一部分是后台服务的性能测试(API的响应时间和响应报文大小),一部分是应用自身的性能情况(占用CPU、内存、I/O、电量情况,以及页面到页面之间的切换速度,如果是游戏或动画,还要保证能够在一定的帧率以上)。
    • 安全测试:关键的机密数据连接有没有走加密连接;本地数据库有没有做加密处理,是否会被其他恶意应用读取;后台服务的接口是否安全,会不会受SQL注入的影响;应用有没有做混淆,会不会被逆向以及会不会在渠道方被修改重新签名挂马;敏感数据是否存在了SD Card上等等。
    • 地理位置定位测试:大多数业务软件(电商类)都支持获取用户的地理位置信息,方便做一些本地业务的定制(尤其是对于O2O行业),至少需要考虑到三方面:1. 城市是否能准确定位;2. 定位位置精度是否符合要求;3. 地理位置名称解析过程无误。
    • 应用升级兼容性测试:需要保证应用能够在升级或跨版本升级后一些关键数据得以保留,而不必用户重新设置,诸如用户账户认证信息、亮度设置、用于标示设备的UUID和一些关键的应用功能开关设置等等。
    • 设备兼容性测试:随着Android设备的快速分化以及iOS设备的缓慢分化,应用需要适配在不同配置的硬件平台上(不同的CPU体系结构、不同的RAM配置、不同的Flash存储、不同的传感器配置、不同的网络模式等等),同时还要兼顾不同的OS版本,所以需要很大的精力放在系统兼容性和设备兼容性测试上。
    • 耦合应用测试:对于今天的移动应用,“孤岛”模式的应用已经不复存在。大多数应用需要跟其他应用进行交互,从而达到“社交化”或“分享”以及“支付”的功能,这样,它在运行时跟其他软件的交互就存在一定的不确定性,这时如果应用有版本升级,我们需要关注升级后的耦合应用跟我们的应用之间的交互是否还依旧有效。
    • PUSH跳转测试:现今的移动应用同样还存在通过推送服务来让用户到达特定页面的特征。这样我们需要对PUSH服务能否到达特定页面并正确展示特定页面做测试。
    • 统计上报测试:对于大多数应用来说,收集一些用户数据有助于他们对用户行为作出分析,从而对比是不是一些新功能的加入能提高用户的活跃度或转化率。这些信息都需要一定的上报方案才能获取、入库和分析。所以对于QA来说,这部分工作并不弱于一般功能测试。

    ---------------------------------------------

    补充说的网络环境,网络方面可以重点关注三类测试:

    1. 功能测试(用户体验方面)。在有些2G/3G网络上请求延迟会比较大,建立连接速度慢,以及不断进行大量的分散请求也会导致功耗增大、反复建立连接导致完成所有请求/响应时间长,这些都需要关注到。同时,应用内提供一套支持节约流量的使用模式也是一种可取的途径。另外,应用自身也可以考虑加上一定的离线工作模式,如将一些关键数据在WiFi连接时或有网时进行预取。参考豆瓣电台离线模式或虾米的歌单离线收听。不过此类测试可以通过一些工具来模拟网络延迟大或是丢包严重的情况,用2G/3G网络直接测试的环境构造成本会比较大。
    2. 适当的性能测试。功能测试已经能发现很多用户体验方面的问题,但这是大概的。如果要特别精细地定位问题瓶颈,需要通过性能测试详细分析延迟出现在哪里,是在建立连接的过程还是服务端响应的过程,或者是应用本地处理返回的数据上。
    3. 由于运营商在2G/3G网络环境上的复杂配置,很多情况下应用到服务端的连接会出现各种各样的怪象,导致用户无法在操作应用端时成功将请求发往服务端。这部分无法直接通过测试来保证(除非你**真的**有足够的资源可以做好众测)。建议跟运维组联系部署或租用全国范围内的电信、联通、移动网络监控(监控到关键域名下URL的响应)。
    ---------------------------------------------

    一、 什么是App性能测试

    性能(performance):是系统实现其功能的能力。例如,响应时间、吞吐能力、事务处理数。

    性能测试,是指在特定负载情况下,确定系统的响应速度和稳定性的表现。它也可以研究、测量、验证系统的其他特征,比如可扩展性、可靠性和资源使用率。通俗的讲:通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生成性能要求,即在特定的运行条件下验证系统的能力状况。

    按App构成特点,将性能测试分为客户端性能、服务器性能两大块。

    二、 性能测试的关键指标

    客户端性能的关键指标有:

    CPU占用率、内存占用率、流量耗用量、FPS(每秒传输帧数) (见下图)&amp;lt;img src=&quot;https://pic4.zhimg.com/90ac2d68e93b78723776c2ec4af0de0b_b.png&quot; data-rawwidth=&quot;1075&quot; data-rawheight=&quot;398&quot; class=&quot;origin_image zh-lightbox-thumb&quot; width=&quot;1075&quot; data-original=&quot;https://pic4.zhimg.com/90ac2d68e93b78723776c2ec4af0de0b_r.png&quot;&amp;gt;


    服务器端性能的关键指标有:

    响应时间、并发用户数、吞吐量等;

    三、 如何做性能测试

    1. 明确测试目标;了解性能测试需求;

    2. 编写性能测试计划;

    3. 分析性能测试需求;

    4. 编写性能测试方案、设计测试场景;

    5. 相关资源准备(人力资源、硬件资源、软件资源);

    6. 测试程序开发;脚本维护、测试数据准备、测试监控准备;

    7. 执行性能测试并收集测试结果;

    8. 分析结果;

    9. 系统调优及再测试;


    四、 性能测试五大误区

    Ø 误区 1:性能测试不是手游测试的主要矛盾,兼容性才是

    开发者过高的预估了兼容性测试的重要性,而过低忽略性能测试。其实很多问题的原因就是性能导致的,例如“游戏玩到一半,突然来了个电话,再返回时游戏界面崩溃”、或者“在你好不容易在手机上打了一大段字,正要发送时,来了条短信,而记事软件已经崩溃,辛辛苦苦编辑的内容早就没了” 这类问题非常容易引起玩家的反感,造成流失。

    Ø 误区 2:性能测试要像功能测试一样,覆盖到所有功能

    性能测试的主要目的是为了系统调优。不可能对所有的系统功能都进行性能测试。在测试设计时需要结合当时的实际系统,先分析软件可能存在的瓶颈,此时可依据80/20 原则分析:对系统资源的利用、数据大量传输、数据转换、用户使用频率、逻辑复杂度等进行分析,选择要执行的功能和场景,再依此制定性能测试的方案。

    Ø 误区 3:做性能测试主要就是测试工具的使用

    我做不好性能测试,是因为对测试工具不熟悉;测试工具可以自动生成我所需要的报表;依靠性能测试工具就能准确定位系统颈;测试工具在测试中只起到辅助性作用。而测试方案、测试场景的分析、问题的定位这才是性能测试的关键。不要期望测试工具能够生成你想要的所有东西(报表、瓶颈分析),工具只能近可能多的提供给我们分析的依据。

    Ø 误区 4:提高一下硬件配置就可以提高性能了,因此性能测试不重要

    随着软件规模的扩大,提高硬件配置只是解决性能问题的一个基本手段。因为如果软件自身存在性能问题,再多的资源可能也不够用,例如:内存泄漏问题,随着时间的增加,内存终究会被耗尽,最后导致系统崩溃;数据库链接数等配置信息、数据库死锁是和硬件很难挂钩的;算法逻辑问题导致程序缓慢。即使要提高已经配置,也要首先用性能测试的方式得出哪些硬件可能存在瓶颈。

    Ø 误区 5:随便找个环境下进行一下性能测试就可以了

    做性能问题分析可以在类生产环境上进行,配置可以有些差别,一般性能测试还是在类生产环境进行,原因有两个:1)性能测试要尽可能早的完成,提早发现问题并整改;2)在生产环境进行测试可能会造成脏数据。



    五、 WeTest性能测试

    提供android版本和云端版本2种性能测试方案,这里着重介绍下本地版本。使用3步即可:

    1) 打开WeTest腾讯质量开放平台 下载WeTest APP,并安装(手机需越狱或Root);&amp;lt;img src=&quot;https://pic4.zhimg.com/1a52f37d95a29c6b2591fe839c97ba0b_b.jpg&quot; data-rawwidth=&quot;525&quot; data-rawheight=&quot;869&quot; class=&quot;origin_image zh-lightbox-thumb&quot; width=&quot;525&quot; data-original=&quot;https://pic4.zhimg.com/1a52f37d95a29c6b2591fe839c97ba0b_r.jpg&quot;&amp;gt;


    2) 运行手机上的WeTest APP,选择手游后点“开始测试”;&amp;lt;img src=&quot;https://pic4.zhimg.com/0e3f540043a6d44ce65bf7274a0b1c7b_b.jpg&quot; data-rawwidth=&quot;959&quot; data-rawheight=&quot;538&quot; class=&quot;origin_image zh-lightbox-thumb&quot; width=&quot;959&quot; data-original=&quot;https://pic4.zhimg.com/0e3f540043a6d44ce65bf7274a0b1c7b_r.jpg&quot;&amp;gt;

    &amp;lt;img src=&quot;https://pic1.zhimg.com/528ecf210e11d7267dac48abe3e30838_b.jpg&quot; data-rawwidth=&quot;958&quot; data-rawheight=&quot;539&quot; class=&quot;origin_image zh-lightbox-thumb&quot; width=&quot;958&quot; data-original=&quot;https://pic1.zhimg.com/528ecf210e11d7267dac48abe3e30838_r.jpg&quot;&amp;gt;

    3) 上传并查看报告

    结束测试后,打开WeTestAPP点击“上传”按钮。&amp;lt;img src=&quot;https://pic3.zhimg.com/ba88370d16fac92a71a61dbb30869026_b.jpg&quot; data-rawwidth=&quot;526&quot; data-rawheight=&quot;884&quot; class=&quot;origin_image zh-lightbox-thumb&quot; width=&quot;526&quot; data-original=&quot;https://pic3.zhimg.com/ba88370d16fac92a71a61dbb30869026_r.jpg&quot;&amp;gt;



    登录WeTest腾讯质量开放平台点击“我的主页”里面,左侧的“手游测试报告”,在页面中就会出现“性能测试”结果报告,点击查看,就可以查看完整的测试报告;&amp;lt;img src=&quot;https://pic1.zhimg.com/bda042e1789d9e355681838d1c1fdab4_b.png&quot; data-rawwidth=&quot;437&quot; data-rawheight=&quot;458&quot; class=&quot;origin_image zh-lightbox-thumb&quot; width=&quot;437&quot; data-original=&quot;https://pic1.zhimg.com/bda042e1789d9e355681838d1c1fdab4_r.png&quot;&amp;gt;


    &amp;lt;img src=&quot;https://pic2.zhimg.com/2d1d233553c538d15091ea7a77e54fe1_b.png&quot; data-rawwidth=&quot;451&quot; data-rawheight=&quot;257&quot; class=&quot;origin_image zh-lightbox-thumb&quot; width=&quot;451&quot; data-original=&quot;https://pic2.zhimg.com/2d1d233553c538d15091ea7a77e54fe1_r.png&quot;&amp;gt;

    彩蛋>>没有这些工具前,我们是怎么测试的?

    这里分享一个案例。测试人员使用组合式的方式,分别从不同的工具上采集核心数据,并且数据不全,也不专业。

    Wimat负责CPU部分,而360负责流量采集部分。其实Wimat使用方式如下:&amp;lt;img src=&quot;https://pic4.zhimg.com/8fa53609ae6ad055cef1e8d26a25afff_b.jpg&quot; data-rawwidth=&quot;220&quot; data-rawheight=&quot;336&quot; class=&quot;content_image&quot; width=&quot;220&quot;&amp;gt;

    &amp;lt;img src=&quot;https://pic1.zhimg.com/eac367f0e3f5bfd1d22b50c4c84dcb64_b.jpg&quot; data-rawwidth=&quot;236&quot; data-rawheight=&quot;336&quot; class=&quot;content_image&quot; width=&quot;236&quot;&amp;gt;

    1)勾选所要监控的对象并设置好监控时间后,点击开始,WiMAT会在后台启动一个服务,由这个服务

    监控各项指数的变化并写到结果文件里;

    2)这时候可以打开或切换到要测试的应用程序,运行一些测试用例;

    3)结束后切换回WiMAT界面,点击停止结束监控,WiMAT会告诉你结果文件的存储位置

    360手机卫士对流量监测的使用方法如下:

    1)进入安全保护tab页,选择流量监控;

    2)进入后再切换到统计排行tab页;&amp;lt;img src=&quot;https://pic1.zhimg.com/073ef9e3a1b72023c8dfce3b23febbe8_b.jpg&quot; data-rawwidth=&quot;233&quot; data-rawheight=&quot;347&quot; class=&quot;content_image&quot; width=&quot;233&quot;&amp;gt;

    &amp;lt;img src=&quot;https://pic1.zhimg.com/6c434e72a203c74d86beb91c634e7af4_b.jpg&quot; data-rawwidth=&quot;230&quot; data-rawheight=&quot;347&quot; class=&quot;content_image&quot; width=&quot;230&quot;&amp;gt;

    一、 什么是App性能测试

    性能(performance):是系统实现其功能的能力。例如,响应时间、吞吐能力、事务处理数。

    性能测试,是指在特定负载情况下,确定系统的响应速度和稳定性的表现。它也可以研究、测量、验证系统的其他特征,比如可扩展性、可靠性和资源使用率。通俗的讲:通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生成性能要求,即在特定的运行条件下验证系统的能力状况。

    按App构成特点,将性能测试分为客户端性能、服务器性能两大块。

    二、 性能测试的关键指标

    客户端性能的关键指标有:

    CPU占用率、内存占用率、流量耗用量、FPS(每秒传输帧数) (见下图)&amp;lt;img src=&quot;https://pic4.zhimg.com/90ac2d68e93b78723776c2ec4af0de0b_b.png&quot; data-rawwidth=&quot;1075&quot; data-rawheight=&quot;398&quot; class=&quot;origin_image zh-lightbox-thumb&quot; width=&quot;1075&quot; data-original=&quot;https://pic4.zhimg.com/90ac2d68e93b78723776c2ec4af0de0b_r.png&quot;&amp;gt;


    服务器端性能的关键指标有:

    响应时间、并发用户数、吞吐量等;

    三、 如何做性能测试

    1. 明确测试目标;了解性能测试需求;

    2. 编写性能测试计划;

    3. 分析性能测试需求;

    4. 编写性能测试方案、设计测试场景;

    5. 相关资源准备(人力资源、硬件资源、软件资源);

    6. 测试程序开发;脚本维护、测试数据准备、测试监控准备;

    7. 执行性能测试并收集测试结果;

    8. 分析结果;

    9. 系统调优及再测试;


    四、 性能测试五大误区

    Ø 误区 1:性能测试不是手游测试的主要矛盾,兼容性才是

    开发者过高的预估了兼容性测试的重要性,而过低忽略性能测试。其实很多问题的原因就是性能导致的,例如“游戏玩到一半,突然来了个电话,再返回时游戏界面崩溃”、或者“在你好不容易在手机上打了一大段字,正要发送时,来了条短信,而记事软件已经崩溃,辛辛苦苦编辑的内容早就没了” 这类问题非常容易引起玩家的反感,造成流失。

    Ø 误区 2:性能测试要像功能测试一样,覆盖到所有功能

    性能测试的主要目的是为了系统调优。不可能对所有的系统功能都进行性能测试。在测试设计时需要结合当时的实际系统,先分析软件可能存在的瓶颈,此时可依据80/20 原则分析:对系统资源的利用、数据大量传输、数据转换、用户使用频率、逻辑复杂度等进行分析,选择要执行的功能和场景,再依此制定性能测试的方案。

    Ø 误区 3:做性能测试主要就是测试工具的使用

    我做不好性能测试,是因为对测试工具不熟悉;测试工具可以自动生成我所需要的报表;依靠性能测试工具就能准确定位系统颈;测试工具在测试中只起到辅助性作用。而测试方案、测试场景的分析、问题的定位这才是性能测试的关键。不要期望测试工具能够生成你想要的所有东西(报表、瓶颈分析),工具只能近可能多的提供给我们分析的依据。

    Ø 误区 4:提高一下硬件配置就可以提高性能了,因此性能测试不重要

    随着软件规模的扩大,提高硬件配置只是解决性能问题的一个基本手段。因为如果软件自身存在性能问题,再多的资源可能也不够用,例如:内存泄漏问题,随着时间的增加,内存终究会被耗尽,最后导致系统崩溃;数据库链接数等配置信息、数据库死锁是和硬件很难挂钩的;算法逻辑问题导致程序缓慢。即使要提高已经配置,也要首先用性能测试的方式得出哪些硬件可能存在瓶颈。

    Ø 误区 5:随便找个环境下进行一下性能测试就可以了

    做性能问题分析可以在类生产环境上进行,配置可以有些差别,一般性能测试还是在类生产环境进行,原因有两个:1)性能测试要尽可能早的完成,提早发现问题并整改;2)在生产环境进行测试可能会造成脏数据。



    五、 WeTest性能测试

    提供android版本和云端版本2种性能测试方案,这里着重介绍下本地版本。使用3步即可:

    1) 打开WeTest腾讯质量开放平台 下载WeTest APP,并安装(手机需越狱或Root);&amp;lt;img src=&quot;https://pic4.zhimg.com/1a52f37d95a29c6b2591fe839c97ba0b_b.jpg&quot; data-rawwidth=&quot;525&quot; data-rawheight=&quot;869&quot; class=&quot;origin_image zh-lightbox-thumb&quot; width=&quot;525&quot; data-original=&quot;https://pic4.zhimg.com/1a52f37d95a29c6b2591fe839c97ba0b_r.jpg&quot;&amp;gt;


    2) 运行手机上的WeTest APP,选择手游后点“开始测试”;&amp;lt;img src=&quot;https://pic4.zhimg.com/0e3f540043a6d44ce65bf7274a0b1c7b_b.jpg&quot; data-rawwidth=&quot;959&quot; data-rawheight=&quot;538&quot; class=&quot;origin_image zh-lightbox-thumb&quot; width=&quot;959&quot; data-original=&quot;https://pic4.zhimg.com/0e3f540043a6d44ce65bf7274a0b1c7b_r.jpg&quot;&amp;gt;

    &amp;lt;img src=&quot;https://pic1.zhimg.com/528ecf210e11d7267dac48abe3e30838_b.jpg&quot; data-rawwidth=&quot;958&quot; data-rawheight=&quot;539&quot; class=&quot;origin_image zh-lightbox-thumb&quot; width=&quot;958&quot; data-original=&quot;https://pic1.zhimg.com/528ecf210e11d7267dac48abe3e30838_r.jpg&quot;&amp;gt;

    3) 上传并查看报告

    结束测试后,打开WeTestAPP点击“上传”按钮。&amp;lt;img src=&quot;https://pic3.zhimg.com/ba88370d16fac92a71a61dbb30869026_b.jpg&quot; data-rawwidth=&quot;526&quot; data-rawheight=&quot;884&quot; class=&quot;origin_image zh-lightbox-thumb&quot; width=&quot;526&quot; data-original=&quot;https://pic3.zhimg.com/ba88370d16fac92a71a61dbb30869026_r.jpg&quot;&amp;gt;



    登录WeTest腾讯质量开放平台点击“我的主页”里面,左侧的“手游测试报告”,在页面中就会出现“性能测试”结果报告,点击查看,就可以查看完整的测试报告;&amp;lt;img src=&quot;https://pic1.zhimg.com/bda042e1789d9e355681838d1c1fdab4_b.png&quot; data-rawwidth=&quot;437&quot; data-rawheight=&quot;458&quot; class=&quot;origin_image zh-lightbox-thumb&quot; width=&quot;437&quot; data-original=&quot;https://pic1.zhimg.com/bda042e1789d9e355681838d1c1fdab4_r.png&quot;&amp;gt;


    &amp;lt;img src=&quot;https://pic2.zhimg.com/2d1d233553c538d15091ea7a77e54fe1_b.png&quot; data-rawwidth=&quot;451&quot; data-rawheight=&quot;257&quot; class=&quot;origin_image zh-lightbox-thumb&quot; width=&quot;451&quot; data-original=&quot;https://pic2.zhimg.com/2d1d233553c538d15091ea7a77e54fe1_r.png&quot;&amp;gt;

    彩蛋>>没有这些工具前,我们是怎么测试的?

    这里分享一个案例。测试人员使用组合式的方式,分别从不同的工具上采集核心数据,并且数据不全,也不专业。

    Wimat负责CPU部分,而360负责流量采集部分。其实Wimat使用方式如下:&amp;lt;img src=&quot;https://pic4.zhimg.com/8fa53609ae6ad055cef1e8d26a25afff_b.jpg&quot; data-rawwidth=&quot;220&quot; data-rawheight=&quot;336&quot; class=&quot;content_image&quot; width=&quot;220&quot;&amp;gt;

    &amp;lt;img src=&quot;https://pic1.zhimg.com/eac367f0e3f5bfd1d22b50c4c84dcb64_b.jpg&quot; data-rawwidth=&quot;236&quot; data-rawheight=&quot;336&quot; class=&quot;content_image&quot; width=&quot;236&quot;&amp;gt;

    1)勾选所要监控的对象并设置好监控时间后,点击开始,WiMAT会在后台启动一个服务,由这个服务

    监控各项指数的变化并写到结果文件里;

    2)这时候可以打开或切换到要测试的应用程序,运行一些测试用例;

    3)结束后切换回WiMAT界面,点击停止结束监控,WiMAT会告诉你结果文件的存储位置

    360手机卫士对流量监测的使用方法如下:

    1)进入安全保护tab页,选择流量监控;

    2)进入后再切换到统计排行tab页;&amp;lt;img src=&quot;https://pic1.zhimg.com/073ef9e3a1b72023c8dfce3b23febbe8_b.jpg&quot; data-rawwidth=&quot;233&quot; data-rawheight=&quot;347&quot; class=&quot;content_image&quot; width=&quot;233&quot;&amp;gt;

    &amp;lt;img src=&quot;https://pic1.zhimg.com/6c434e72a203c74d86beb91c634e7af4_b.jpg&quot; data-rawwidth=&quot;230&quot; data-rawheight=&quot;347&quot; class=&quot;content_image&quot; width=&quot;230&quot;&amp;gt;


    展开全文
  • app测试定位问题的方法

    千次阅读 2018-08-20 13:54:25
    总结起来app测试也有快三年的经验了,从以前的小白到现在快速定位问题。能给研发快速定位出问题,尤其是一个复杂的问题,对他们来说是非常重要的,能够节省不少时间。 当然这也需要具备一定的知识与能力,长用到的...
  • 运动App后台持续定位生成轨迹

    千次阅读 2019-06-16 07:37:00
    1. 连续定位采集点 后台持续定位主要参照高德官网给的示例主要有一下几点: 1.定位LocationService,另起进程同时创建守卫进程Service, LocationHelperService,Service挂掉时守卫进程唤起...import android.app...
  • GPS照片定位显示软件

    2020-05-12 11:29:32
    一个相册地图程序,可以利用照片拍摄时记录的经纬度信息,在地图上显示照片位置,还可以对照片定位信息进行修改。对于不带定位信息的jpg图片,也可以注入定位信息。所有功能仅需图片文件本身,无需任何辅助信息或...
  • 是一个简易的室内定位软件。IBeaconReference。包括采集蓝牙信号、高斯离散权重分配计算距离、基于KNN算法的训练模型,等。是我和我的同学一起完成的代码。特此分享。(数据存储路径一般为手机根目录,特殊需要请自行...
  • 通常意义上来说,app 可以读取 mac 地址,但仅限于用户已经阅读了隐私内容,并且隐私内容中也告知了用户,app 会运行期间采集 wlan mac 地址等信息。所以如果没等用户同意隐私政策中的内容,就开始提前读取 mac 地址...
  • 我们在提交AppStore是驳回信息 会收到下面的邮件, 发件人 Apple 2. 5 Performance: Software Requirements Guideline 2.5.4 - Performance - Software Requirements Your app declares support for location in ...
  • 开发一个短视频APP需要多少资金费用,做app软件大概多少钱 “短视频APP开发能带来什么好处?现如今抖音、快手等短视频平台层出不穷,为什么还要花钱去开发短视频APP?”第10001位粉丝给亿佰网络干货哥的留言,客户把...
  • 这几天由于项目整个框架大修改,遇到一个问题: 在真机上反复测试时,发现系统定位的授权提示框出现的时间有问题,并不是像我们期望的那样,当进入程序内部才弹出来,它出现的情况分以下几种: 进入app内部,弹出...
  • 之前也看过和风天气自己做的APP,主页面的地图点击之后,定位到某一个点,然后查看这个地方的天气,实际思路还是通过区县来查询天气的,只不过,加上了地图就比较的直观,看起来也会觉得很上档次,所以我也决定做一个...
  • 一 写在前面 由于项目所需,我需要在手机APP中嵌入百度地图。...今天要实现的功能是,通过GPS/网络来进行定位,并以文本的形式将经纬度显示在APP上。 效果如图所示: 二 注册百度开发者账户、申请API KE...
  • 在移动互联网时代,很多企业以及创业者想自己开发一款属于自己公司的APP软件,所以经常有人会问我制作app软件要多少钱?笔者今天整理了对该问题回答得比较精辟的答案,仅供参考! 回答1: 我是开发人员,也做过一...
  • 软件测试03】APP测试理论集合

    千次阅读 2020-06-05 23:24:17
    / 1 /软件权限 / 2 /安装与卸载安全性 / 3 /数据安全性 / 4 /图形测试 / 5 /功能测试 / 6 / 运行 / 7 /应用的前后台切换 / 8 /免登录 / 9 /数据更新 / 10 /离线浏览 / 11 /App更新 / 12 /定位、照相机...
  • 接口返回值 [直接原因]:app无法解析接口返回值/获取不到要获取的参数/参数类型不对 导致客户端代码报错 [引起原因]:脏数据/网络问题导致接口超时或漏了数组元素/前后台没有统一参数类型标准/参数名错误...
  • 在做项目中 , 如果是人群使用不那么局限的app就可能涉及到国际化问题 , 国际化 大致可以分为 代码部分国际化 , xib 和故事板国际化 , 获取权限提示国际化 (访问相册权限 , 定位权限等等..)和应用内切换语言前言 : ...
  • uni-app调手机系统的GPS定位服务

    千次阅读 2019-05-30 14:29:39
    做个记录,在做签到功能时需要用到,强制用户开启GPS定位。目前在vue页面的安卓上面是没有问题的,在wexx上面的页面还不行,也就是nuve。 handleNotice(e){ let system = uni.getSystemInfoSync();// 获取系统...
  • 软件测试之App测试-功能测试

    千次阅读 2017-07-09 23:02:25
    根据软件说明或用户需求验证App的各个功能实现,采用如下方法实现并评估功能测试过程:1)采用时间、地点、对象、行为和背景五元素或业务分析等方法分析、提炼App的用户使用场景,对比说明或需求,整理出内在、外在及...
  • app应用软件开发流程是怎样的?

    千次阅读 2017-11-14 09:45:54
    从入职这行业到创业已有 7 载,对 APP 产品开发的流程已经再熟悉不过了,现在把这几年积累的一些经验和大家分享一下,一个产品是怎么从想法一步一步落地为具体成品的,这个过程中会经历一些怎样的必要流程呢,下面...
  • 在移动互联网时代,手机软件开发需求非常大,但是软件开发比较专业,软件...根据项目定位、用户需求、竞品分析等,确定项目所包含的功能、如何满足用户需求等,确定功能逻辑,确定详细的功能清单。 第三步、原型设计 将
  • 如题,手机升级安卓11了,虚拟定位用不了了,把现在市面上的虚拟定位都试过来了都不行,跪求大神分享一个能用的</p>
  • 并且自己写了个Demo,主要包含5大功能:地图、定位、自定义marker、路线制定、模拟导航。下面是效果图(代码下载链接在最下面,有需要的拿走): 1. 准备工作: 首先需要做一些地图的准备工作,这就好比写代码前,...
  • GPS与UWB融合定位 由于GPS只能在室外定位,通过引进UWB技术,可实现GPS与UWB混合定位,在室内以及GPS卫星...可在地图上实时显示车辆人员定位图标,定位对象图标可修改,点击定位对象图标,可显示车辆或人员详细信息

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,039
精华内容 15,215
关键字:

修改定位的软件app