android平台_android删除android平台 - CSDN
  • Android 平台搭建

    2010-07-21 12:33:00
    Android 开发平台搭建:1.安装环境:OS :windows 7旗舰版JDK :jdk 6.0Eclipse :eclipse-java-helios-win32 ADT :ADT-0.9.7,Eclipse IDE 进行 Android 开发的一种插件Android SDK : android-...

    Android 开发平台搭建:

    1.安装环境:

    OS windows 7旗舰版

    JDK jdk 6.0

    Eclipse eclipse-java-helios-win32

     ADT ADT-0.9.7Eclipse IDE 进行 Android 开发的一种插件

    Android SDK : android-sdk_r06-windows.zipAndroid Sdk包含开发用模拟器和API

    2.安装过程

    下面是我的安装过程:

    2.1安装JDK

    2.1.1下载jdk-6u18-windows-i586.exe

    安装在目录:D:/jdk1.6.0_18

    2.1.2 建立环境变量 

    新建 JAVA_HOME 

    计算机——属性——高级系统设置——高级——环境变量

    在  系统变量 下点击  新建 

    设置

    变量名:JAVA_HOME

    变量值:D:/jdk1.6.0_18

    点击 确定

    2.1.3 设置 path

    点击 编辑 (如果不存在path,则新建 path) 在变量值最后加上 :

    ;%JAVA_HOME%/bin  

    注意:分号)为英文分号,分号为变量间的分割符(如果已有分号就不必再添加),如下图:

    点击  确定

    2.1.4 设置 classpath (如果已存在则点击编辑)

    设置 

    变量名:classpath

    变量值:.;%JAVA_HOME%/bin/tools.jar;%JAVA_HOME%/lib/dt.jar

    注意:第一个分号前是英文句号( 

    点击 确定——确定——确定

    2.1.5 测试JDK

    添加完后,可以在命令行下用分别命令测试:javac java,如果出现JDK一大串文字就说明配置好了。
    2.2 下载Eclipse

    我使用最新Eclipse 3.6 eclipse-java-helios-win32 

    解压后则可使用,我的解压路径为:E:/android/eclipse-java-helios-win32

    2.3 下载并正确放置ADT 

    ADT的安装可参照官方教程:

    http://developer.android.com/sdk/eclipse-adt.html#installing

    打开以上链接找到 ADT-0.9.7.zip

    点击链接下载,解压得到:

    featuresplugins 里面的 jar 文件复制到Eclipse 安装路径下对应的文件夹,重启Eclipse即可

    以上正确配置后工具栏出现androidlogo,说明设置成功,如下图:

     

    2.4  下载安装SDK

    下载android-sdk_r06-windows 解压即完成安装(^_^

        但是还要设置 SDK,根据上文设置JDK的方法设置SDK。计算机——属性——高级系统设置——高级——环境变量。

    2.4.1设置SDK环境变量

    在  系统变量 下点击  新建 

    设置:

    变量名:ANDROID_HOME

    变量值:E:/android/android-sdk_r06-windows/android-sdk-windows

    注意:变量值为SDK 解压路径

    点击 确定

    2.4.2  设置 path

    点击 编辑  在变量值最后加上 :

    ;%ANDROID_HOME%/tools 

    注意:分号)为英文分号,分号为变量间的分割符(如果已有分号就不必再添加),如下图:

    点击 确定——确定——确定

    2.5  测试SDK环境

    添加完后,可以在命令行下用命令测试:android --help,如果出现android的帮助命令就说明配置好了。
    2.6  Eclipse 配置SDK路径

    打开Eclipse 选择Windows->Preferences->Android 

    点击选择Browser 选择Android SDK解压位置

    我的是解压路径:E:/android/android-sdk_r06-windows/android-sdk-windows  

    选择完毕点击 Apply—— OK退出

     

    2.7  创建Android Virtual Device
        刚下载的 SDKplatforms目录是空的

    运行cmd 进入到E:/android/android-sdk_r06-windows/android-sdk-windows/tools 目录下

    输入命令获得Android可用的虚拟设备android list target

    看到Available Android targets为空,如下图:

        进行如下设置:

    选择Window- > Android SDK and AVD Manager- > Available Packages 

    点开右边的树选择需要的SDK PlatformAndroid APIs

        这里我选择2.1版本,这里可以点击安装多个版本,因为我打算入手一台android2.1系统的手机,然后点击 Install Select如图所示:

     

     

     

    点击 Install

    安装过程如下,给个美图,呵呵,文件大概几十MB,耐心等等……

    点击close完成安装

        安装完后,选择Vitual Devices 右边点New,输入

    name: android21  (模拟器名称)

    Target: android 2.1-API Level 7 (如果之前你点击安装了多个版本,你可以选择不同的版本,我这里只能选择这个)

    SD Card: 256M 输入你想要的大小

    其他默认就可以了,完后点Create AVD

    如下图:

        这时,再命令行下进入到E:/android/android-sdk_r06-windows/android-sdk-windows/tools 目录下

    输入命令android list target

    可以看到Available Android targets了:

    至此环境搭建已经完成。

    3. 启动模拟器。
    运行cmd

    进入到E:/android/android-sdk_r06-windows/android-sdk-windows/tools

    输入命令:emulator -avd android21

    如图:

    这里用到你刚才命名的模拟器名字android21 作为参数运行后看到模拟器了,我顿时内牛满面!

     

     

     

    点击开机键

     

    令人激动的android之旅开始了……

    4.应用经典程序 HelloWrold

        在android里如何编写Helloworld?

    File->new->Project

        然后选择Android->Android Project

    点击 Next

        工程信息如下:

    Project name:可以随意

    Application name:可以随意

    Package name:可以随意

        注意:package name 必须是两层目录以上,否则出现错误:Package name must have at least two identifiers.

    Create activity:可以随意

     

     

    然后点击 Finish

        编辑代码:

    package pds.android.dev;

     

    import android.app.Activity;

    import android.os.Bundle;

    import android.widget.TextView;

     

     

    public class HelloAndroid extends Activity {

        /** Called when the activity is first created. */

        @Override

        public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            TextView tv = new TextView(this);

            tv.setText("Hello, World!");

            setContentView(tv);

        }

    }

        运行程序:

    Run->run ->Android Application->OK

    可以看到控制台有信息显示,然后看看模拟器,你会有惊人的发现(要首先解屏幕锁,向右拖动即可)

    贴士:

    每次运行模拟器都要运行cmd 编辑路径,非常麻烦,这是可以编写一个批处理文件命名为 android.bat ,放在桌面双击即可运行模拟器,代码如下:

    start "android" "E:/android/android-sdk_r06-windows/android-sdk-windows/tools/emulator.exe" "-avd" "android21"

    exit

     

     

     

     

     

    展开全文
  • Android平台介绍

    2019-06-25 09:49:20
    一、Android平台介绍 什么是智能手机 具有独立的操作系统,独立的运行空间,可以由用户自行安装软件、游戏、导航等第三方应用程序,并可以通过移动通讯网络来实现无线网络接入的手机类型总称。 智能手机操作系统 ...

    一、Android平台介绍

    什么是智能手机

    具有独立的操作系统,独立的运行空间,可以由用户自行安装软件、游戏、导航等第三方应用程序,并可以通过移动通讯网络来实现无线网络接入的手机类型总称。

    智能手机操作系统

    Android、IOS、Windows Phone、BlackBerry、Symbian

    什么是Android

    Android是一种基于Linux的开源操作系统,主要使用于移动设备,例如智能手机、平板电脑、智能手表、智能电视等等。由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资,逐渐扩展到平板电脑及其他领域上。

    Android发展历史

    Android 4.1Jelly Bean(果冻豆):2012年6月28日

    新特性:更快、更流畅、更灵敏;特效动画的帧速提高至60fps,增加了三倍缓冲;增强通知栏;全新搜索;搜索带来全新的UI、智能语音搜索和Google Now三项新功能;桌面插件自动调整大小;加强无障碍操作;语言和输入法扩展。

    Android 4.2Jelly Bean(果冻豆):2012年10月30日

    Photo Sphere全景拍照功能;键盘手势输入功能;改进锁屏功能,包括锁屏状态下支持桌面挂件和直接打开照相功能等;可扩展通知,允许用户直接打开应用;Gmail邮件可缩放显示;Daydream屏幕保护程序;用户连点三次可放大整个显示频,还可用两根手指进行旋转和缩放显示,以及专为盲人用户设计的语音输出和手势模式导航功能等;支持Miracast无线显示共享功能

    Android 4.3 Jelly Bean

    提升了性能,更加流畅,提升反应速度。新增脱机语音输入、更多的平板优化(主要针对小尺寸平板)、强化Voice Search语音搜索。大幅改变用户界面设计。增强恶意软件的保护措施。

    Android 4.4 KitKat“奇巧”

    在阅读电子书、玩游戏、看电影时支持全屏模式。优化存储器使用,在多任务处理时有更佳工作的表现。支持Google Cloud Print服务,让用户可以利用户中或办公室中连接至Cloud Print的打印机,打印文件。全新的原生计步器。全新的NFC付费集成

    全新的非Java虚拟机运行环境ART(Android Runtime)

    什么是Dalvik:

    Dalvik是Google公司自己设计用于Android平台的Java虚拟机。dex格式是专为Dalvik应用设计的一种压缩格式,适合于内存和处理器速度有限的系统。Dalvik允许同时运行多个虚拟机的实例,并且每一个应用作为独立的Linux进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。

    什么是ART:

    在Dalvik下,应用每次运行都需要通过即时编译器(JIT)将字节码转换为机器码,即每次都要编译加运行,这一机制并不高效,但让应用安装比较快,而且更容易在不同硬件和架构上运行。

    ART完全改变了这种做法,在应用安装时就预编译字节码到机器语言,在移除解释代码这一过程后,应用程序执行将更有效率,启动更快。

    Dalvik与ART的区别

    1. 在Dalvik下,应用每次运行都需要通过即时编译器(JIT)将字节码转换为机器码,即每次都要编译加运行,这虽然会使安装过程比较快,但是会拖慢应用以后每次启动的效率。而在ART 环境中,应用在第一次安装的时候,字节码就会预编译(AOT)成机器码,这样的话,虽然设备和应用的首次启动(安装慢了)会变慢,但是以后每次启动执行的时候,都可以直接运行,因此运行效率会提高。

    2. ART占用空间比Dalvik大(字节码变为机器码之后,可能会增加10%-20%),这也是著名的“空间换时间大法"。

    3. 预编译也可以明显改善电池续航,因为应用程序每次运行时不用重复编译了,从而减少了 CPU 的使用频率,降低了能耗。

    Android 5.0 Lollipop

    采用全新Material Design界面。支持64位处理器。全面由Dalvik转用ART(Android Runtime)编译,性能可提升四倍。预载省电及充电预测功能。新增自动内容加密功能。新增多人设备分享功能,可在其他设备登录自己账号,并获取用户的联系人、日历等Google云数据。强化网络及传输连接性,包括Wi-Fi、蓝牙及NFC。强化多媒体功能,例如支持RAW格式拍摄。提供低视力的设置,以协助色弱人士。

    Android 6.0 Marshmallow(棉花糖)

    新系统的整体设计风格依然保持扁平化的MeterialDesign。Android6.0在对软件体验与运行性能上进行了大幅度的优化。Doze电量管理,Android6.0可使设备续航时间提升30%。锁屏下语音搜索、指纹识别、更完整的应用权限管理、Now on Tap功能、Android Pay进一步强化移动支付。

    Android 7.0 Nougat(牛轧糖)

    分屏多任务,全新下拉快捷开关页,通知消息快捷回复,通知消息归拢,夜间模式,流量保护模式,全新设置样式,改进的Doze休眠机制,系统级电话黑名单功能,菜单键快速应用切换

    Android各个版本对自动化测试的支持

    1.0 instrumentation (android.test)

    2.2 robotium

    2.3 monkeyrunner

    4.1 input text 更新

    4.4 uiautomator

    几种操作系统的对比

    Android智能手机操作系统。基于Linux平台的开源手机操作系统。它包括操作系统、用户界面以及应用程序

    优点:目前大部分软件及游戏不花钱,系统可以自定义,自由度较高。开发可扩展性非常好。

    缺点:硬件使用效率不高,优化的不够。游戏软件质量没有IOS高,安全性稍差。

     

    IOS操作系统是苹果操作系统,用iPhone可以一键登录App Store,轻松下载到你需要的应用程序。

    优点:IOS优化好,很流畅,兼容性好,人性化,上手简单,易于操作,安全性相对来说较高。

    缺点:比较封闭,自定义程度不高,不能对系统进行深层次的改造。

     

    Window Phone是微软发布的一款手机操作系统,他将微软旗下的游戏、音乐与独特的视频体验整合至手机中。

    优点:流畅性稳定性好(相对安卓而言)

    缺点:硬件配置高、耗电量大、电池续航时间短、硬件成本高,目前应用App、游戏都比较少。

     

    Android平台优势

    比Symbian更先进

    全新开源系统,系统发展更具前景

    快速增长的海量第三方免费软件

    无“证书”限制,安装软件更自由

     

    比IOS更开放

    风格更自由,简洁

    开源系统,更多第三方免费软件

    软件安装卸载更方便,无需第三方平台软件

     

    Android系统的结构

    Linux内核层

    硬件和其他软件之间的一个抽象隔离层

    提供安全机制、内存管理、进程管理、网络协议堆栈、驱动程序等

     

    中间件层

    由函数和Android runtime构成

    函数库主要提供一组基于C/C++的函数库

    Surface Manager,支持显示子系统的访问,提供应用程序与2D、3D图像层的平滑连接

    Media Framework 实现音视频的播放和录制功能

    SQLite 轻量级的关系数据库引擎

    OpenGL ES 基于3D图像技术

    FreeType位图与矢量字体渲染

    Webkit浏览器引擎

    SGL 2D图像引擎

    SSL 数据加密与安全传输函数库

    libc标准C运行库 Linux系统中底层应用程序开发接口

     

    Android runtime

    核心库提供Android系统的特有函数功能和Java语言函数功能

    Dalvik虚拟机实现基于Linux内核的线程管理和底层内存管理

     

    应用程序框架

    Resource Manager 允许应用程序使用非代码资源

    Location Manager 管理与地图相关的服务功能

    Notification Manager 允许应用程序在状态栏中显示提示信息

    Package Manager 管理应用程序安装包

    Window Manager 管理应用程序窗口

     

    应用程序

    系统出厂自带的一些应用程序

     

    Android 对测试的挑战

    混乱的Android

    2013年的某统计数据

    开发者95万

    机型3500种

    用户4亿

    应用150万

     

    设备屏幕分辨率不同

    厂商对API的实现不同

    手机的性能差异化

    底层功能潜在的问题

     

    1.同一API的不同体现----crash、ANR(55.8%)

    2.严重的功能性问题,如联网、短信、蓝牙等(20.7%)

    3.设备屏幕分辨率(18.9%)

    4.其他问题(4.6%)

     

    结语:了解每一个操作系统新版本的新功能,根据新版本的特性更新测试用例以及测试侧重点。

    二、Android功能测试

    需求

    以产品需求为导向和前提开展测试工作

    启动和停止

    首次启动:

    欢迎界面、启动时间、信息拉取

    二次启动:

    启动时间、各种入口、再启动状态、信息拉取、登录

    退出应用:

    各种退出的方式(手动、被动)、收拾残局、再次启动

    程序功能模块

    文本输入:

    正常输入、非正常输入、边界值,特殊字符

    事件触发:

    满足需求、尝试点击非点击区域、检查debug后门

    权限安全

    需要用户确认的权限没有授权,权限默认关闭

    联网权限被管家、系统安全类软件限制情况下的联网操作

    权限敏感度,如通讯录等为系统的绝密权限谨慎获取

    使用安全软件进行安全漏洞、病毒扫描,看被测APP是否会被这些安全软件提示有问题而影响用户的对被测APP的使用或者印象

    文件存储

    APP使用过程中产生的临时文件存储路径、命名方式等

    APP中涉及的下载操作产生的文件存储方式

    存储的文件被锁、占用

    有外置SD、内置SD卡都要考察APP产生的文件是否正确

    APP被安装在SD卡或者手机存储空间

    磁盘空间不足、磁盘无权限(如读、写操作)

    网络与流量

    网络提示

    网络信号,尤其是弱网络环境下应用的表现

    不同运营商网络:电信、联通、移动,2G/3G/4G

    网络中断、网络恢复场景的逻辑处理(如重试)

    首次启动应用的流量是否符合预期

    统计、异常上报对流量的影响

    基于流量安全的特殊业务,如仅wifi联网

    接口容错

    前端测试后台接口测试覆盖不到的内容

    请求网络层错误:http response返回非200的状态

    请求业务层错误:接口返回内容为空、超长、字段类型不匹配

    中断测试

    锁屏中断:停留在程序操作界面进行锁屏,恢复后检查操作是否正常

    前后台切换:停留在程序操作界面,通过Home键,进行程序的前后台切换

    加载中断:页面接口请求、界面框架加载时,通过Home键、返回键、快速切换操作进行中断

    系统异常中断:如关机、断电、来电

    声源占用:比如导航正在规划完路线在导航,这时插入了U盘,程序将播放u盘里的歌曲声源优先级设置为最高,当拔掉u盘,导航的声源占用优先级应恢复。

    机型适配

    分辨率适配:UI结构、对话框基于分辨率、屏幕大小进行适配

    OS版本适配:涉及API调用如获取SIM卡信息、外置SD卡设置等等

    CPU硬件配置:X86机型、V5、V6、V7、V8

    系统配置

    进程管理:省电管理、后台进程驻留管理

    显示管理:字体大小、字体类型

    语言环境:语言环境

    横竖屏配置:是否支持横竖屏自适应处理

    升级覆盖安装

    逐步升级:用户数据、设置、状态的保留,特别注意新版本已去掉的状态或设置

    跳级:即隔开版本覆盖安装(容易出现问题)

    降级:覆盖安装更低版本

    卸载安装: 卸载安装,安装目录清理,SD卡存储数据不被清理

    省流量升级:有些助手提供省流量升级的方式

    在没有更新或者网络时,需要给予用户正确的信息表达

    强制升级

    不升级无法使用

    性能测试

    性能: 核心操作的性能指标:如CPU/内存、响应时长、电量、流量

    稳定性: 选择某些场景做持续反复操作:Monkey稳定性操作,持续多个小时

    流畅度: 列表滑动、返回进入、快速点击

    兼容性测试

    通用软件:例如输入法

    安全软件:例如各种管家

    竞品软件、同类软件,是否出现冲突

     

    三、Android专项测试

    专项测试

    根据测试过程中凸显的问题,可以成立专项测试。通常专项测试有:内存、CPU、FPS、弱网络、电量、流量、流畅度、加载速度、成功率、内存、响应速度、稳定性、规划时间、内容推荐精准度、声源验证、竞品对比测试、支持视频格式

    工具:GT

    GT:在Android平台上,可以下载GT的APK、安装后直接使用,GT的APK提供了GT的绝大部分基础功能;例如,基础性能测试、日志查看、网络数据包抓取等等。

     

    GT SDK:在Android平台上,如果希望使用GT的高级功能,如“插桩”等,就必须将GT的SDK嵌入到被调测的应用的工程里,再配合安装好的GT使用。

     

    adb常用命令

    adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序,说白了就是debug工具。

     

    adb install xxxx.apk安装一个apk到电脑连接的默认手机

    adb uninstall xxxx.apk卸载

    adb devices 当前电脑连接了几台手机

    adb kill –server杀掉服务

    adb start –server启动服务

    adb reboot 重启手机

    adb shell 进入手机系统

    am

    pm

    pm clear 清理app相关的信息恢复到刚安装的状态

    service list 当前系统中运行的系统级的服务

    dumpsys

    input text

     

    内存测试

    命令:dumpsys meminfo [package name]

     

    CPU

    命令: dumpsys cpuinfo | grep<packagename>

     

    流量

    方法:从文件中获取

    /proc/uid_stat/<uid>/tcp_snd

    /proc/uid_stat/<uid>/tcp_rcv

     

    流量(抓包)

    方法:

    tcpdump–p –s 0 –vv–w filename

    -s 0: 按包长,截取数据

    -vv输出详细的报文信息

     

    FPS

    命令:

    service call SurfaceFlinger 1013

    adb shell dumpsysSurfaceFlinger --latency <window_activity>

    SurfaceFlinger是一个系统服务,管理Android帧缓冲区

    note: 需要root

     

    电量

    命令:/sys/class/power_supply/battery/uevent

     

    电量(5.0系统之后手机)

    命令:

    adb shell dumpsysbatterystats> xxx.txt 

    adb shell dumpsysbatterystats> com.package.name > xxx.txt

    结果分析:

    python historian.py xxx.txt > xxx.html

     

    稳定性测试

    Monkey Test

    运行在模拟器或设备上的一个工具,模拟用户按键输入,触摸屏输入,手势输入等。看手机多长时间会出异常

    Android Monkey Test?

    • 对软件进行漫无目的,随机的,非常理的胡乱操作,以测试软件的稳定性和健壮性
    • 应用程序开发者验证自己应用的健壮性
    • 设备制造商对自己设备施行压力测试,看设备能坚持多久
    • 集成adb shell里面的一个命令,命令参数包括:

    l  基本配置选项,如设置尝试的事件数

    l  运行约束选项,如设置只对单独的一个包进行测试

    l  事件类型和频率,调试选项

    弱网络

    所谓弱网环境简单来说就是网络质量较差导致丢包和延迟等现象

    工具:fiddler等限速工具

    四、bug根因分析

    界面适配

    问题:

    1、手机分辨率为1920x1080的高分辨率手机,在调整手机字体大小时,会导致页面显示出现变形;

    2、因用户设置的特殊字体导致列表的字母条不显示;

    3、某些 banner 图片在部分机型只能显示一半。

     

    预防方法:

    1、文字或者图片需要适配不同分辨率的机型时,建议使用dp方式进行开发,即使是使用dp,也需要考虑特殊分辨率的机型显示;

    2、适应宽度/适应高度/高宽均适应的;

    3、针对程序需求,设定合适的适配机制。

     

    系统适配

    问题:

    调用高版本API,导致某些机型进入主页显示空白页面。

     

    预防方法:

    调用高版本API,需要考虑兼容性,开发团队需要制定程序API调用规范。

     

    交互适配(1)

    问题:

    1、在输入框操作时,调出系统输入法软键盘后,没有有效启用键盘上的“下一项”、“确定”、“搜索”等按键;

    2、系统软键盘,在关闭当前页面时没有及时收起软键盘。

     

    预防方法:

    1、需求设计过程中需要考虑输入法操作键的使用细节,确保所有软键盘的输入键可使用;

    2、设计规范:程序/页面设计针对输入法操作键的使用制定规范。

     

    交互适配(2)

    问题:

    APP界面的“返回”操作与手机系统的“返回”按键操作效果不一致;或界面未提供“返回”,在无系统“返回”按键的手机上,无法返回。

     

    预防方法:

    设计规范:程序设计针对手机返回键制定使用规范;在设计中要综合界面需求设定是否提供“返回”操作。

     

    界面风格

    问题:

    1、对话框标点、英文字符出现全角、半角的不统一;

    2、对话框、提示浮动框提示语风格不同,显示位置均不同,产品友好度下降;

    3、字体和字号要在app中是不同的风格。

     

    预防方法:

    建立统一的界面风格/语言文字提示规范(可参考微软的标准)

    全角字符和半角字符都要使用一个空格分开

    英文和数字之间要有空格分开

    汉字和英文、数字要有空格分开

    带有汉字的话要使用全角字符

    语言中不要混用全角和半角标点

    字体和字号要保持统一的风格

     

    性能优化(1)

    问题:

    1、进入一些列表,若数量较多则会出现卡死;

    2、界面显示对象数量较多,某些会导致页面操作卡顿,用户体验很差;

    3、处理大量数据时,用户等待时间过长,无进度条提示进度。

     

    预防方法:

    1、程序对耗时较多的操作逻辑、判断逻辑,不放入UI主线程;

    2、对数据库记录较多的操作,可以改成数据库批量操作,或者调用批量接口;

    3、程序在后台处理用户的输入,则提供进度条或对话框。

     

     

    性能优化(2)

    问题:

    1、后台播放内存泄露;

    2、程序后台运行的时候,手机一直处于占用CPU的运行状态;

    3、页面中的动态效果(如:马灯滚动)次数无限制,导致界面不断刷新消耗资源。

     

    预防方法:

    1、使用静态分析工具或代码检查方式检查内容的分配和释放;

    2、WakeLock机制是防回收技术,当没有播放、下载等操作时,应该主动关闭后台的唤醒锁,减少耗电。当再次需要使用播放、下载功能时才去开启唤醒;

    3、对刷新消耗资源类操作,要有次数限制。

     

    多服务、多进程

    问题:

    1、某些功能操作后,app 无法连接网络;

    2、进程被杀死后重启,通知栏中显示的信息不正确,没有显示正确的信息;

    3、app未启动,通过其他第三方app的调用入口调用app ,无法正常使用某些功能;

    4、服务停止后,无法被启动;

    5、程序被手动退出后,进程仍然在后台存在。

     

    预防方法:

    1、重新初始化时获取值时读取到空值,因此赋予一个默认值;

    2、服务重启被回收重启时,初始化对象时要判断当前是否已存在,若存在则复用并更新内容;

    3、任务独立,需要创建不同的服务,生命周期不会互相影响,服务独立可以避免某个服务结束会影响到其他功能的正常使用;

    总体,对有启用多服务、多进程的程序,有需要做好服务、进程的一致性管理。

     

    外部调用

    问题:

    1、某些机型启动app之后一直在调用某些外部服务(通过后台服务可以看到其他服务进程,退出app后,有些服务进程消失);

    2、某些功能模块被扫描成存在木马病毒;

    3、安全管家告警程序获取绝密权限(通讯录权限)。

     

    预防方法:

    调用第三方功能作为统计或者监控作用时,需要考虑该sdk是否会一直唤醒app导致耗电或者程序无法真正关闭问题,调用外部第三方SDK,要考虑被安全工具(上次有广告被扫描到病毒)扫描的设计需求、及时关闭不需要的服务进程,在能满足需求的情况下,尽量减少使用敏感的系统权限。

     

    网络机制(1)

    问题:

    1、网络重试操作机制不统一,导致页面超时体验风格不统一;

    2、某些应用页面,访问响应慢。

     

    预防方法:

    1、对底层网络重试机制做统一封装后,供上层调用;

    2、固定好每次重试间隔(建议10s重试)和重试总次数(建议3次);

    3、为使页面提示可以区分网络层与业务解析层不同错误,需对不同错误类型做分类的异常处理,并提示用户原因或让用户重试;

    4、对多个网络请求的界面,网络接口并行请求有利于提高响应速度。

     

    网络机制(2)

    问题:

    1、未加载完图片时切换到相似tab,切回不再加载图片;

    2、进入一个tab,该页面已经加载完成,选择点击某个详细信息页面返回时,页面会闪一下。

     

    预防方法:

    1、一个页面有多个tab页时,用户切换tab可不轻易取消线程,取而代之使用暂停线程,退出页面时才回收清除;

    2、启动负载分摊机制的请求,可先保存请求地址,供返回时判断避免重复加载。

     

    网络机制(3)

    问题:

    1、iOS弱网络下获取不到配置,导致启动卡死;

    2、sim卡未激活,无移动网络,某些功能卡死;

    3、断网下启动,登录状态丢失,某些功能信息未正确显示。

     

    预防方法:

    1、启动逻辑中的网络类请求不能阻塞UI主线程,即网络请求数据可不即时响应(可在下次启动时生效);

    2、按钮的点击事件不跟接口关联,做成异步处理不管是否有返回,都可以正常进行点击操作;

    3、离线操作类,不因与当前网络状态有影响。

     

    下载空间有效性判断

    问题:

    1、空间不足时,无法保存信息时,没有提示和提前判断;

    2、本地存储空间不足时,保存文件时没有相应提示;

    3、空间不足时,文件下载不成功,导致重复不停下载,浪费用户流量。

     

    预防方法:

    1、对磁盘剩余空间的判断和自动清理逻辑可以做统一封装,提供各不同下载业务使用;

    2、可结合系统硬件配置的10%作为有效剩余空间阀值;

    3、针对手机内外置SDCard,可以在空间不足情况下做分区切换机制。  

     

    下载文件完整性判断

    问题:

    1、换肤图片未下载完,就触发换肤操作,导致换肤效果错误;

    2、图片无法下载完全,导致图片展示不完整;

    3、文件下载完成后,由于网络错误与源文件不符,导致下载后无法播放;

    4、上传文件功能,目标物理文件不存在(界面缺显示存在),导致传送文件页面一直处于等待中。

     

    预防方法:

    1、通过判断下载前后文件的size或者文件内容签名,确保下载文件完整后再触发文件使用相关的逻辑;

    2、文件传输时检查文件是否存在,若不存在则视为传输失败,不阻塞后续传输。

     

    阻断连续操作

    问题:

    1、连续快速切换界面,或者频繁触发某些功能操作,导致程序卡死;

    2、连续多次点击同一张图片,导致该图片下载错误。

     

    预防方法:

    使用间隔响应、延迟响应的方式,达到多次相同操作只的触发一次有效逻辑,

    操作一次后,可将按钮等元素设定为禁用状态,防止用户多次点击和请求。

     

    有效统计逻辑

    问题:

    操作页面某些元素,也会导致发送页面使用的统计信息。    

     

    预防方法:

    为确保统计数据上传的有效性,只针对真正展示的界面做上报统计,对于展示不完整、非针对性展示不做统计上报。

     

    程序健壮性判断(1)

    问题:

    1、分享到新浪微博(手机未装新浪微博客户端),app崩溃;

    2、后台接口变更(返回值和类型发生变化),客户端不兼容新格式判断,抛出崩溃异常;

    3、搜索默认操作崩溃;

    4、使用外部第三方数据,出现空数据或者非标准格式,则app崩溃;

    5、输入框没有限制字符长度,保存时导致溢出崩溃。

     

    预防方法:

    1、客户端针对接口返回需做容错处理,如返回为空、返回数据类型不一致;

    2、任何文本框类型的需要限制输入长度。

     

    程序健壮性判断(2)

    问题:

    1、某些功能的初始化逻辑没有加入启动逻辑,导致功能使用失败;

    2、退出重启app,无法自动登录。

     

    预防方法:

    1、制定启动加载逻辑规范;

    2、对于重要的业务建议加入启动逻辑,并在业务实际使用时再根据状态多一层判断和加载;

    3、产品人员需要考虑是否需要保存自动登录功能,并明确告之开发和测试人员。

     

    安全机制

    安全考虑:

    1、在URL中不要带有明文的用户信息写代码的时候,不要把密码等敏感的用户信息明文的显示在url中;

    2、即使要传递密码参数也不要使用pwd、passpord这样的参数名称来进行传递,防止被截获;

    3、要在传递参数的操作中使用NoCache参数,防止将url参数进行缓存。

     

    预防方法:

    建立标准的数据传输和命名规范,并制作一些网页开发模板或者规范供参考。

     

    日志调试管理

    问题:

    上线以后,调试日志没有关闭,影响程序性能。

     

    预防方法:

    1、日志统一开关,编译正式包需要关闭;

    2、再程序界面有入口可以检查是否关闭,方便及时校验;

    3、方便定位问题,可以做日志动态开启的隐藏开关;

    4、方便收集问题,可以对问题类型做上报处理(典型如崩溃日志上报)。

     

    Bug预防总结

    分析问题à找到具体原因à解决问题à总结问题à建立预防方法à规范流程和制度à监督执行

    五、课堂练习用例汇总

    序号 测试类型 测试项 测试点
    1 功能测试 启动和停止 首次启动打开一个聊天窗口,再次启动保留聊天窗口
    2 退出从新登录,聊天窗口是否保留
    3 进程被杀掉后重新开启程序聊天窗口是否保留
    4 功能 内容(文本、语音、图片、视频、表情、位置、红包、转账、卡券、名片、收藏)测试(正常输入、非正常、边界值、特殊字符)
    5 聊天记录的保留机制是否符合预期
    6 消息撤回机制是否符合预期
    7 语音转文字是否符合预期
    8 语音听筒模式与扬声器模式互相转换是否符合预期
    9 免打扰功能是否符合预期
    10 同账号不同设备信息同步是否符合预期
    11 账号异地登录的处理符合预期
    12 更换设备后登录原账号,聊天窗口是否保留,聊天记录是否可以从服务端获取
    13 同一账号先后登录处理机制是否符合预期
    14 编辑完信息未发送,信息的草稿保存机制是否符合预期
    15 复制粘贴是否符合预期
    16 UI 界面、输入框、易用性、流畅性、用户体验
    17 权限安全 拍照、读取相册、位置、存储等功能是否申请权限
    18 无权限时使用相关功能是否符合预期
    19 无权限时应有友好提示并引导用户如何授权
    20 文件存储 存储空间不足给予有好提示,并引导清理文件
    21 保存文件(图片、语音、视频等)
    22 存储空间不足或无读写权限聊天功能是否符合预期
    23 网络与流量 流量消耗是否符合预期
    24 断网时(友好提示)、网络恢复时是否符合预期
    25 wifi/非wifi(全网通 2g/3g/4g)是否符合预期
    26 弱网表现是否符合预期
    27 非wifi环境下是否有“是否允许4g使用”开关
    28 发送文件时是否对不同的网络情况作了不同处理
    29 因网络问题发送失败的消息重新发送是否符合预期
    30 接口容错 接口返回错误时,反馈给用户的信息是否符合预期
    31 中断测试 来电、闹钟、提醒、其他推送造成的系统中断表现是否符合预期
    32 锁屏、解锁后表现是否符合预期
    33 前后台切换表现是否符合预期
    34 断电、通电、关机、开机表现是否符合预期
    35 造成发送中断后重新发送是否符合预期
    36 机型适配 指定品牌型号适配
    37 指定分辨率适配
    38 指定os版本适配
    39 系统配置 修改系统的字体、字号设置后表现是否符合预期
    40 改变系统语言环境后表现是否符合预期
    41 横竖屏切换是否符合预期
    42 修改当前系统时间为错误时间,表现是否符合预期
    43 升级安装 逐步升级后表现是否符合预期
    44 跳级后表现是否符合预期
    45 降级后表现是否符合预期
    46 卸载重新安装表现是否符合预期
    47 性能测试 cpu/内存、响应时间、电量等是否符合预期指标
    48 典型场景长时间操作稳定性是否符合预期指标
    49 整体操作的流畅度是否符合预期
    50 兼容性 不同os交叉使用、不同os版本交叉使用是否符合预期
    51 对常用输入法的兼容
    52 对常用安全软件的兼容
    53 对竞品软件的兼容
    54 信息安全 敏感词机制是否符合预期
    55 用户重要信息加密是否符合预期
    56 数据库加密是否符合预期
    57 专项测试 随机应变 根据测试过程中凸显的问题,判断是否需要成立专项测试。
    58 测试项 内存、CPU、FPS、弱网络、电量、流量、流畅度、加载速度、成功率、内存、响应速度、稳定性、规划时间、内容推荐精准度、声源验证、竞品对比测试、支持视频格式

    转载于:https://www.cnblogs.com/zqq521/p/7472615.html

    展开全文
  • 本文关键字:android操作系统,android是什么意思,android平台,android培训, Android系统下Java编程详解 Android简介 Android一词英文本义指“机器人”,它是由Google公司于2007年11月推出的基于Linux平台的...

    本文关键字:android操作系统,android是什么意思,android平台,android培训,
    Android系统下Java编程详解

    Android简介

    Android一词英文本义指“机器人”,它是由Google公司于2007年11月推出的基于Linux平台的开源手机操作系统,依靠Google公司的强大开发和媒体资源,Android成为众多手机厂商竞相追逐的对象,逐渐发展成为当下流行的手机开发平台,图1所示为Android系统的Logo。

    Android系统的Logo
    图1 Android系统的Logo

    Android是一个包括操作系统、中间件、用户界面和关键应用软件的移动设备软件堆。换言之,Android是基于Java并运行在Linux内核上的轻量级操作系统,其功能全面,包括一系列Google公司在其上内置的应用软件,如电话、短信等基本应用功能。图2所示为Android的模拟器,从中可以大概了解Android的运行界面。

    Android的模拟器
    图2 Android的模拟器

    Android平台特性

    随着科技的发展,移动电话(Mobile Phone)正朝着智能化的方向发展,逐步成为多种工具的功能载体,而Android就是这样一个智能手机的平台、一个多种工具的功能载体。

    1.通信工具
        移动电话的最基本功能为通信功能,因此使用运营商提供的通信网络进行语音通话也是Android平台的最基本功能。除了传统的语音通话功能外,Android平台还具有短消息功能,以及通常移动电话都具有的个人信息系统管理方面的功能(如电话本等)。

    2.网络工具
        随着数字业务使用的普遍化,移动电话通常被作为网络工具使用,即移动电话可以完成电脑的部分功能。而Android平台在网络方面的功能主要包括浏览器、IM(即时信息)、邮件等。

    3.媒体播放器
        随着多媒体技术的发展应用,在移动电话上进行音频和视频播放已经成为经常使用的功能。由此,Android平台具有支持更多的音频/视频格式,支持更高分辨率的视频,可更流畅地播放视频,以及支持网络流媒体等功能。

    4.媒体获取设备
        随着移动电话与媒体获取设备的集成日益增强,Android平台提供了照相机、录音机、摄像机等功能。

    5.多类型的连接设备
        Android平台提供了多种连接方式,如USB、GPS、红外、蓝牙、无线局域网等。

    6.具有友好和绚丽的用户界面
        Android平台具有友好的用户界面,使用户容易学习和操作;同时具有绚丽的用户界面,具有良好的视觉效果。

    7.可以个性化定制的平台
        Android平台针对于用户的个性化需求,提供了全面自定义手机的功能。

    除了上述介绍的Android平台的功能以外,其在技术上还具有以下几个方面的特性:
        全开放智能移动电话平台。
        支持多硬件平台。
        使用众多的标准化技术。
        核心技术完整、统一。
        完善的SDK和文档。
        完善的辅助开发工具。

    本文选自华清远见android开发培训教材《Android系统下Java编程详解》

    展开全文
  • Android平台版本信息

    2020-05-26 17:18:55
    Android平台信息 平台版本 版本名称 SDK版本 9 Pie 28 8.1 Oreo 27 8.0 Oreo 26 7.1 Nougat 25 7.0 Nougat 24 6.0 Marshmallow 23 5.1 Lollipop 22 5.0 Lollipop 21 4.4 KitKat 19 4.3 ...

    Android平台信息

    平台版本 版本名称 SDK版本
    9 Pie 28
    8.1 Oreo 27
    8.0 Oreo 26
    7.1 Nougat 25
    7.0 Nougat 24
    6.0 Marshmallow 23
    5.1 Lollipop 22
    5.0 Lollipop 21
    4.4 KitKat 19
    4.3 Jelly Bean 18
    4.2.x Jelly Bean 17
    4.1.x Jelly Bean 16
    4.0.3-4.0.4 Ice Cream Sandwich 15
    2.3.3-2.3.7 Gingerbread 10

    https://developer.android.google.cn/about/dashboards/

    展开全文
  • Android平台简介

    2011-08-23 17:20:01
    3.1、Android 平台简介 什么是AndroidAndroid一词本意是指“机器人”,是一个移动设备,是基于Linux平台,由操作系统,中间件、用户界面和应用软件组成。   Android是基于Linux开放性内核的操作系统,是...
  • android平台现状分析

    2009-06-12 10:52:00
    由于工作原因,开始关注、学习android平台。经过半个月的熟悉、学习,先写写自己对android这个平台的一些分析吧。(以下节选自己写的一个可行性分析报告) 1.1破局者—android(现状分析)1.1.1 原有的手机平台格局...
  • Android平台架构及特性

    2016-11-11 22:28:59
    1.Android系统的底层建立在Linux系统之上,采用软件叠层(software stack,使得层与层之间相互分离)的方式进行构建。 2.Android系统的体系结构 Android运行时由两部分组成:Android核心库集和Dalvik虚拟机。其中...
  • 什么是Android ——Android平台简介 <br /> <br />Keyword: Google Android,Linux内核,开源,应用领域,开放手机联盟(Open Handset Alliance) <br />   在网上看到有“Android平台”和...
  • 搭建安卓应用开发平台 创建简单的Android应用程序 创建activity并利用Intent实现跳转 二.实验内容 下载并安装Android studio开发环境。 创建一个简单的项目,输出“你好啊,这是我的第一个安卓项目!” 创建项目,...
  • Android平台架构简介

    2017-10-21 19:30:15
    应用层Android系统介绍Android系统的底层建立在Linux系统之上,该平台由操作系统、中间件、用户界面和应用软件四层组成,它采用一种被称为软件叠层(Software Stack)的方式进行构建。这各软件叠层结构使得层与层之间...
  •  在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开放性...
  • 一般项目版本管理,会有多个svn分支,拉新的svn分支后,打开工程默认以PC为平台,如果工程比较大的话,需要等好长一段时间,等所有资源都编译完之后,然后再手动在BuildSettings中切换成Android平台,然后又要等好长...
  • Android平台与SDK Tools版本以及ADT版本的对应关系在android的开发中,我们接触很多不同版本的SDK Tools,以及很多版本的ADT,在面试的时候,面试官也是很喜欢问,请说一下你使用过的android版本之间的不同等。...
  • Android平台特性

    2016-11-17 16:49:44
    随着科技的发展,移动电话(Mobile Phone)正朝着智能化的方向发展,逐步成为多种工具的功能载体,而Android就是这样一个智能...除了传统的语音通话功能外,Android平台还具有短消息功能,以及通常移动电话都具有的个
  • 我使用的Cordova版本是6.4.0,在进行添加android平台是它给我选了6.0.0版本,当我使用 cordova platform add android 的时候它是成功的帮我创建了android平台的相关代码,但是它报出了一个错误,告诉我说,需要jdk...
  • 第四章、Android编译系统与定制Android平台系统 4.1Android编译系统Android的源码由几十万个文件构成,这些文件之间有的相互依赖,有的又相互独立,它们按功能或类型又被放到不同目录下,对于这个大的一个工程,...
  • Android 平台下的原生 Markdown 解析器
  • 为什么选择Android平台来研发手机引言这是笔者作为一个一线手机开发者对《为什么选择Android平台来研发手机》问题的思考。一.开源开源的手机开发平台,基于Linux操作系统。二.开放Android是一个开放式的移动电话...
  • Android平台编译支持OpenCL的Opencv静态库。
  • 上篇文章已经对Web Service及其相关知识进行了介绍(Android...本文将通过一个简单的示例讲解和演示Android平台的Web Service开发。 Ksoap2-android简介  在Android平台调用Web Service需要依赖于第三方类库ksoap
1 2 3 4 5 ... 20
收藏数 328,897
精华内容 131,558
关键字:

android平台