精华内容
参与话题
问答
  • Android平台介绍

    2017-09-04 11:03:00
    一、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产品平台设计

    2011-10-25 11:41:34
    试想你做的不是一个软件, 而是一个软件族, 这个些软件需要在Android平台发布, 你应该做何种规划? 这些问题需要在以下真实场景中考虑: QQ发布的特有手机, 需要继承多个软件: QQ空间、股票、聊天、游戏等 一个具有...
  • Android系统介绍及平台特性

    万次阅读 2013-08-08 16:46:16
    本文关键字: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平台特性

    千次阅读 2018-08-17 11:14:40
    Android平台采用了整合的策略思想,包括底层Linux操作系统、中间层的中间件和上层的Java应用程序。下面我把Android的特性及其架构体系结构总结一下。 一、Android的平台特性  Android平台有如下特性:  1. 应用...

    Android平台采用了整合的策略思想,包括底层Linux操作系统、中间层的中间件和上层的Java应用程序。下面我把Android的特性及其架构体系结构总结一下。

    一、Android的平台特性

      Android平台有如下特性:

      1. 应用程序框架支持组件的重用与替换。

      这样我们可以把系统中不喜欢的应用程序删除,安装我们喜欢的应用程序。

      2. Dalvik虚拟机专门为移动设备进行了优化。

      Android应用程序将由Java编写、编译的类文件通过DX工具转换成一种后缀名为.dex的文件来执行。Dalvik虚拟机是基于寄存器的,相对于Java虚拟机速度要快很多。

      3. 内部集成浏览器基于开源的WebKit引擎。

      有了内置的浏览器,这将意味着WAP应用的时代即将结束,真正的移动互联网时代已经来临,手机就是一台“小电脑”,可以在网上随意遨游。

      4. 优化的图形库包括2D和3D图形库,3D图形库基于OpenGL ES 1.0。

      强大的图形库给游戏开发带来福音。在3G最为重要的的应用莫过于手机上网和手机游戏。

      5. SQLite用作结构化的数据存储。

      6. 多媒体支持包括常见的音频、视频和静态印象文件格式

      如MPEG4、H.264、MP3、AAC、AMR、JGP、PNG、GIF。

      7. GSM电话(依赖于硬件)。

      8. 蓝牙(Bluetooth)、EDGE、3G、WiFi(依赖于硬件)。

      9. 照相机、GPS、指南针和加速度计(依赖于硬件)。

      10. 丰富的开发环境包括设备模拟器、调试工具、内存及性能分析图表和Eclipse集成的开发环境插件。

      Google提供了Android开发包SDK,其中包含了大量的类库和开发工具,并且针对Eclipse的可视化开发插件ADT。

    二、Android平台架构


    Android 操作系统的体系结构

      从上图我们可以看出,Android操作系统的体系结构可分为4层,由上到下依次是应用程序、应用程序框架、核心类库和Linux内核,其中第三层还包括Android运行时的环境。下面分别来讲解各个部分。

      1. 程序应用

      Android 连同一个核心应用程序包一起发布,该应用程序包包括E-mail客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序等。所有的应用程序都是用Java编写的。

      2. 应用程序框架

      开发者完全可以访问核心应用程序所使用的API框架。该应用程序框架架构用来简化组件软件的重用,任何一个应用程序都可以发布它的功能块并且任何其他的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。该应用程序重用机制使得组件可以被用户替换。

      以下所有的应用程序都由一系列的服务和系统组成,包括:

      1)一个可扩展的视图(Views)可以用来创建应用程序,包括列表(lists)、网络(grids)、文本框(text boxes)、按钮(buttons),甚至是一个可嵌入的Web浏览器。

      2)内容管理器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。

      3)一个资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串、图形和分层文件(layout files)。

      4)一个通知管理器(Notification Manager)使得应用程序可以在状态栏中显示客户通知信息。

      5)一个活动类管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。

      3. Android程序库

      Android包括一个被Android系统中各种不同组件所使用的C/C++集库。该库通过Android应用程序框架为开发者提供服务。

      以下是一些主要的核心库:

      1)系统C库:一个从BSD继承来的标准C系统函数库(libc),专门为基于Embedded Linux的设备定制。

      2)媒体库:基于PacketVideo OpenCORE;该库支持录放,并且可以录制许多流行的音频视频格式,还有静态映像文件包括MPEG4、H.264、MP3、AAC、JPG、PNG。

      3)Surface Manager:对显示子系统的管理,并且为多个应用程序提供2D和3D图层的无缝融合。

      4)LibWebCore:一个最新的Web浏览器引擎,用来支持Android浏览器和一个可嵌入的Web视图。

      5)SGL:一个内置的2D图形引擎。

      6)3D libraries:基于OpenGL ES 1.0 APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。

      7)FreeType:位图(bitmap)和向量(vector)字体显示。

      8)SQLite:一个对于所以应用程序可用、功能强劲的轻型关系型数据库引擎。

      4. Android运行库

      Android包括了一个核心库,该核心库提供了Java编程语言核心库的大多数功能。

      每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对同时高效地运行多个VMs实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都是经由Java汇编器编译,然后通过SDK中的DX工具转化成.dex格式由虚拟机执行。

      Dalvik虚拟机依赖于Linux的一些功能,比如线程机制和底层内存管理机制。

      5. Linux内核

      Android的核心系统服务依赖于Linux内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的硬件抽象层。

    相关文档:Google工程师多图详解Android架构


    安卓操作系统有什特点?

      Android的系统架构和其它操作系统一样,采用了分层的架构。android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
      Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。
      在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:python、lua、tcl、php等等),还有其他诸如:Qt(qt for android)、Mono(mono for android)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的Android Simple语言,该语言类似Basic语言。而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已经支持Android开发。
      而在Android系统底层方面,Android使用C/C++作为开发语言。
     

    Android架构设计的思想与原则是什?

    rlei分析了Android的设计哲学:
    理解好Intent,就可以理解Android哲学(所有应用生来平等)的一部分。举个简单的例子,iOS里面应用要集成SNS如facebook/twitter/sina weibo等,都需要应用自己实现(iOS5也只是集成twitter一家);Android上只需要广播一个share内容的intent。从理解Intent如何工作开始,你就在慢慢理解Activity Manager, Package Manager, Services这些Android的重要组件是如何工作的。
    另外Binder是Android架构里非常核心的一块。Android基于Intent的消息传递和组件/应用解耦,下面的基础都是Binder IPC。在这一点上,Android实际上是光荣的传承了BeOS和Palm OS 6(悲催的OS6…)未能发扬光大的一部分。
    MVC(Content Provider, Activity, Layout, Adapters)这个比较基础,也不算Android特有的。
    Content Provider对数据访问的抽象也是比较有意思的一块。理想情况下,content provider可以让客户端用URI以语义化的方式访问数据(URI本身即表示数据层次结构和查询条件),而下面数据库表的结构可以任意变动,不影响客户端代码。当然实做的时候content provider还是会被各种复杂的where子句暴露出SQL的实现细节
    至于Android的权限管理,其实比较简单,主要是利用现成的Linux安全模型,进程之间相互隔离。API级别的权限管理和JVM类似。
    Billy Cui重点解析了权限系统的设计:
    Android的权限系统是基于Linux,但又增加了很多自己的控制模块。
    总体上来说,其分为以下几部分权限系统:
    1. userid : 继承于linux,对于多个app,通过shareuid的方式可以使用同一个userid,主要承担一些目录访问权限之类的工作,比如私有目录只能由同一uid应用访问。
    2. 安装level:system level or app level,这个是根据应用的安装位置决定的,在system/app下安装的应用就是system level,在权限访问中会得到更多的权限,比如静默安装应用的权限等。
    3. permission : 这个是最主要的权限控制,一般开发者开发应用主要是接触这个部分,在这部分中,会根据应用在AndroidManifest.xml中声明的use-permission而在访问相应api或资源时判断其是否有访问权限,比如常用的android.permission.INTERNET等。
    4. signature: 签名,是Android权限系统中的重要组成部分,对于系统签名的应用,会有一些特殊的功能,而shareuid等特性也是需要同一签名作为基础。此外,permission在设置/自定义其权限时也经常会使用到签名,比如控制只有我自己的应用才可以访问我自己定义的公开API。
    除此以外,其实Android在uid的里面设置了一些预定义有特殊功能的uid,比如system/media等,在配置其system level的services的时候会用到。



    展开全文
  • Android平台简介

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

     

    3.1Android 平台简介

    什么是Android

    Android一词本意是指“机器人”,是一个移动设备,是基于Linux平台,由操作系统,中间件、用户界面和应用软件组成。

     

    Android是基于Linux开放性内核的操作系统,是Google公司在2007115日公布的手机操作系统。Android早期由原名为"Android"的公司开发,谷歌在2005年收购"Android.Inc"后,继续对Android系统开发运营,它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。

     

    2011年初数据显示,仅正式上市两年的操作系统Android已经超越称霸十年的塞班系统,使之跃居全球最受欢迎的智能手机平台。现在,Android系统不但应用于智能手机,也在平板电脑市场急速扩张,在智能MP4方面也有较大发展。采用Android系统主要厂商包括台湾的HTC,(第一台谷歌的手机G1HTC生产代工)美国摩托罗拉,SE等,中国大陆厂商如:魅族(M9),华为、中兴、联想、蓝魔等。

     

    Android一开始并不是Google自己研发的产品,而是收购了一家刚刚创业22个月的公司的产品,该公司的创始人是Andy Rubin,也就是现在Google Android产品负责人罗宾。

     

    Google2007115日发布了Android1.0手机操作系统,号称是首个为移动终端打造的真正开放和完整的移动软件,后经版本不断更新,目前最新版本为Android2.3.3

     

     

    下图显示了Android操作系统的主要组成部分

     

     

    1、应用程序

    Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。

     

    2、应用程序框架

    开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。

    隐藏在每个应用后面的是一系列的服务和系统, 其中包括;

    (1)丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes)按钮(buttons) 甚至可嵌入的web浏览器。

    (2)内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库) 或者共享它们自己的 数据

    (3)资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件( layout files )

    (4)通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。

    (5)活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。

       有关更多的细节和怎样从头写一个应用程序,请参考 如何编写一个 Android 应用程序。

     

    3、系统运行库

    开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。

    隐藏在每个应用后面的是一系列的服务和系统, 其中包括;

    (1)丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes)按钮(buttons) 甚至可嵌入的web浏览器。

    (2)内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库) 或者共享它们自己的 数据

    (3)资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件( layout files )

    (4)通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。

    (5)活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。

       有关更多的细节和怎样从头写一个应用程序,请参考 如何编写一个 Android 应用程序。 

     

    4Linux 内核

    Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理, 网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件栈之间的抽象层。

     

    3.2Android 应用程序组件

    要从事Android应用程序开发,那么了解Android应用程序的思想是非常必要的。Android应用程序没有统一的入口(例如main()方法),各个应用之间是相互独立的,并且运行在自己的进程当中。根据完成的功能不同,Android划分了四类核心的组件类:ActivityServiceBroadcast ReceiverContentProvider。相同组件和不同组件之间的导航通过Intent来完成。Android还定义了View类来显示可视化界面,例如菜单、对话框、下拉列表等。

    3.2.1Activity

    Activity,表示一个活动,是Android组件中最基本也是最为常用的一种组件,在一个Android应用中,一个Activity通常就是一个单独的屏幕。每一个Activity都被实现为一个独立的类,并且继承于Activity这个基类。这个Activity类将会显示由几个Views控件组成的用户接口,并对事件做出响应。

    3.2.2Service

    一个Service是一种长生命周期的、没有用户界面的程序。一般用于后台执行程序时使用,例如在一个媒体播放器的应用中,应该会有多个Activity,让使用者可以选择歌曲并播放歌曲,然而,音乐重放这个功能并没有对应的Activity,因为使用者会认为在导航到其他屏幕时音乐应该还在播放。

    3.2.3Broadcast Receiver

    Broadcast Receiver是为了实现系统广播而提供的一种组件。例如,我们可以发出一种广播来检测手机电量的变化,这时候就可以定义一个Broadcast Receiver来接收广播,当手机电量较低时提示用户。

    3.2.4Content Provider

    Android应用程序之间是相互独立的,各个组件运行在不同的进程中,这就意味着数据是不能共享的。如何使得不同组件的数据可以共享呢?Android通过使用Content Provider来实现不同组件之间数据的共享。

    3.2.5View

    ViewAndroid中图形用户界面的基类,提供了可视化界面的展示。Android的图形界面展示可以分为三层:底层是ActivityActivity上面是WindowWindow上面是ViewsView又可以分为ViewViewGroupView是指基本的控件,例如按钮、单选框、多选框、菜单等;ViewGroup是指布局控件,即用来控制界面中的控件如何布局摆放的。

    3.2.6Intent

    Intent是不同组件之间相互导航的纽带,封装了不同组件之间导航查找的条件。在Intent的描述结构中,有两个最重要的部分:动作和动作对应的数据。典型的动作类型有MAINActivity的门户)、VIEWPICKEDIT等。而动作对应的数据则以URI的形进行表示。例如,要查看一个人的联系方式,你需要创建一个动作类型为VIEWIntent,以及一个表示这个人的URI

     

    展开全文
  • Android平台架构及特性

    千次阅读 2016-11-10 21:25:31
    1.Android系统的底层建立在Linux系统之上,采用软件叠层(software stack,使得层与层之间相互分离)的方式进行构建。 2.Android系统的体系结构 Android运行时由两部分组成:Android核心库集和Dalvik虚拟机。其中...
  • 什么是Android——Android平台简介

    万次阅读 2011-03-10 17:52:00
    什么是Android ——Android平台简介 <br /> <br />Keyword: Google Android,Linux内核,开源,应用领域,开放手机联盟(Open Handset Alliance) <br />   在网上看到有“Android平台”和...
  • Android反编译工具包(升级)官方绿色版

    万次下载 热门讨论 2012-10-10 19:18:30
    Android反编译工具包,内含图形和命令两种反编译方式,命令支持windows和linux平台,亲测验证成功!详见博客:Android APK反编译详解(附图) http://blog.csdn.net/sunboy_2050/article/details/6727581
  • [019] Android平台调用WebService详解

    万次阅读 多人点赞 2011-05-18 00:06:00
    上篇文章已经对Web Service及其相关知识进行了介绍(Android...本文将通过一个简单的示例讲解和演示Android平台的Web Service开发。 Ksoap2-android简介  在Android平台调用Web Service需要依赖于第三方类库ksoap
  • android平台下OpenGL ES 3.0从零开始

    千次阅读 2018-11-04 15:33:48
    OpenGL ES对Android平台的支持情况 OpenGL ES 3.0概述 OpenGL ES 3.0图形管线图 顶点着色器 片段着色器 图元装配 光栅化 逐片段操作 虚拟机和OpenGL ES 3.0的数据传输 OpenGL ES对Android平台的支持情况 ...
  • 总是听到有人说AndroidX,到底什么是AndroidX?

    万次阅读 多人点赞 2019-08-26 08:06:59
    Android技术迭代更新很快,各种新出的技术和名词也是层出不穷。不知从什么时候开始,总是会时不时听到AndroidX这个名词,这难道又是什么新出技术吗?相信有很多朋友也会存在这样的疑惑,那么今天我就来写一篇科普...
  • unable to access android sdk add-on list

    万次阅读 多人点赞 2016-01-22 17:01:15
    你也可以查看我的其他同类文章,也会让你有一定的收货!造成这个问题的原因可能有多种,下面两种方法,我亲自测试后可用,如果都不行,请在评论里告诉...左侧的文章分类中,Android Studio编译构建错误记录了我开发中遇
  • 基于Android平台的人脸识别实现

    万次阅读 热门讨论 2017-08-18 14:22:21
    效果图 先上效果,让大家看看如何 现在有很多人脸识别的技术我们可以拿来使用;但是个人认为还是离线端的SDK比较实用;所以个人一直在搜集人脸识别的SDK;...获取特征点(人脸比对)的效率也很高,基本上
  • Android平台架构简介

    万次阅读 2017-06-09 19:52:24
    应用层Android系统介绍Android系统的底层建立在Linux系统之上,该平台由操作系统、中间件、用户界面和应用软件四层组成,它采用一种被称为软件叠层(Software Stack)的方式进行构建。这各软件叠层结构使得层与层之间...
  • cordova添加android平台时选择安装版本

    万次阅读 2016-07-14 16:49:17
    使用CLI命令添加安卓平台时,默认使用的命令是: cordova add platform android 使用该命令是通常会根据cordova版本不同而给工程添加到不同的平台,但是有时默认添加的并不是我们所需要的 这个时候怎么办呢? 查看了...
  • 今天用QQ的时候想到了,不如用android studio 做一个类似于这样的登录软件。当然QQ的实现的功能特别复杂,UI界面也很多,不是单纯的一时新奇就可以做出来的。就是简单的实现了一些功能,做了三个界面;1.登录界面。2...
  • Cordova添加android平台时选择安装版本

    万次阅读 2016-12-16 23:55:05
    我使用的Cordova版本是6.4.0,在进行添加android平台是它给我选了6.0.0版本,当我使用 cordova platform add android 的时候它是成功的帮我创建了android平台的相关代码,但是它报出了一个错误,告诉我说,需要jdk...
  • Android:JNI 与 NDK到底是什么?(含实例教学)

    万次阅读 多人点赞 2017-06-14 17:03:49
    Android开发中,使用 NDK开发的需求正逐渐增大 但很多人却搞不懂 JNI 与 NDK 到底是怎么回事 今天,我将先介绍JNI 与 NDK & 之间的区别,手把手进行 NDK的使用教学,希望你们会喜欢 目录1. JNI介绍1.1 简介 定义:...
  • ionic cordova platform add android ionic3自动更新到了7.0.0的安卓版本,于是在添加platform的时候总是少文件 解决办法: ionic cordova platform add android@6.3.0 (安装指定版本android) 对于目前还没有...
  • 平台版本 API 级别 VERSION_CODE 备注 Android 7.0 24 N 平台亮点 Android 6.0 23 M 平台亮点 Android 5.1 22 LOLLIPOP_MR1 平台亮点 Android 5.0 21 LOLLIPOP
  • Android开发:shape和selector和layer-list的(详细说明)

    万次阅读 多人点赞 2013-08-02 09:59:44
    shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector。可以这样说,shape和selector在美化控件中的作用是至关重要的。 1.Shape ...
  • Android 10正式版发布,看看都有哪些新特性

    万次阅读 多人点赞 2019-09-04 11:04:23
    谷歌在今年3月推出了Android 10.0的首个测试版,昨天,Android 10.0的正式版正式向外发布,而最先尝到新版本的自然是亲儿子Pixel手机。 新特性解读 根据Android官网的介绍,Android 10.0将聚焦于隐私可控、手机...
  • 通往Android的神奇之旅

    万人学习 2016-04-14 16:12:58
    本套Android课程,大家可以一路学习基本控件,控件,网络,自定义View,地图,推送,后端云,项目实战2048游戏等等,通过本套课程,相信大家可以基本掌握Android入门知识。
  • Android面试系列2018总结(全方面覆盖Android知识结构)   拿到一份offer比什么都重要,所以笔者专门花了近一个月的时间整理好了一份专门为Android面试而生的总结,注意的是笔者仅仅对面试技术方面的题目进行的...
  • Android开发课程-功底Java

    万人学习 2016-08-23 10:04:10
    本套课程是一套全面、细致、深入的Java开发教程,课程共计19个章节,从基础语法、面向对象到设计模式、算法、网络编程、多线程、IO、集合框架、反射、泛型、正则表达式、常用工具类等内容进行了深入细致的讲解。
  • android 漂亮的UI界面 完整的界面设计

    万次下载 热门讨论 2012-02-17 22:19:40
    声明:这也是我学习时在网上下载的,鉴于分享精神,并且觉得很不错才上传...android 漂亮的UI界面 完整的界面设计 这是一个完整的UI设计,但是没写动作,这是一个公司程序员的公司任务设计,请别商用,要用请修改。。。
  • 移动应用技术开发大作业——Android平台个人简历

    万次阅读 多人点赞 2016-05-12 12:53:55
    这门水课一学期就三四节,两节Android一节ios,就要交大作业了。 出于兴趣自己开始自学,先是做了个简单的登录界面,再跟从CSDN上下载的仿知乎日报模板结合了一下。 由于要交作业,花一整天的时间完成了这个app的...
  • Android_Page Curl:Android平台上的翻书翻页 我在之前介绍了一种Android平台上的翻书翻页第三方开源实现,参见附录文章1。现在再介绍一篇第三方开源的翻书翻页开源实现Android_Page Curl,其在github上的项目主页...
  • Android-使用Android Studio实现第三方QQ登录

    万次阅读 多人点赞 2016-11-24 14:28:21
    现在的第三方登录很普遍如QQ,微博,微信,今天我们就来实现如何接入QQ登录到我们的项目中 要想使用QQ登录我们需要到腾讯... ... 然后选择Android平台就会获取APPID和APPKEY创建完成后我们需要到 http://wiki.open.qq.
  • AndroidX了解一下

    万次阅读 多人点赞 2018-08-06 09:25:31
    1.前言 我选取了几个常用依赖库,我们可以看看变化: ... AndroidX build artifact ... com.android.support:support-compat ... androidx.core:core:1.0.0+ ... com.android.support:appcompat-v7 ... androidx.appco...

空空如也

1 2 3 4 5 ... 20
收藏数 2,772,383
精华内容 1,108,953
关键字:

android平台