android框架

Android源码分析(六)-----蓝牙Bluetooth源码目录分析

孤街醉人 提交于 2019-12-18 04:33:07
一 :Bluetooth 的设置应用 packages\apps\Settings\src\com\android\settings\bluetooth* 蓝牙设置应用及设置参数,蓝牙状态,蓝牙设备等。 BluetoothDevicePreference.java 顾名思义,蓝牙设备首选项,也就是蓝牙设备的配置信息,比如是否连接,是否配对,是否可见等等。该类继承了preference类,主要是提供获取蓝牙设备及通知蓝牙设备配置信息变化。 BluetoothDiscoverableEnabler.java 蓝牙搜索UI逻辑处理,包括搜索暂停,搜索恢复,及蓝牙开启关闭时的蓝牙搜索处理,以及搜索超时等处理。该类同时使用了broadcast与handle机制,用来处理搜索的状态变化。 BluetoothEnabler.java 蓝牙功能的开启/关闭功能处理。 BluetoothEventRedirector.java 蓝牙事件转发处理。通过使用broadcast机制,在onstart里面注册了蓝牙的事件权限。 BluetoothNamePreference.java 监听蓝牙名字的变化 BluetoothPairingDialog.java 是activity,配对时各种提示框及按键事件处理,如用户请求配对,密码输入,密码确认,同意等提示框。 BluetoothPairingRequest

Android自动化测试学习路线

Deadly 提交于 2019-12-18 02:12:18
最近在整理Android自动化测试的相关资料,大体上把一些知识点梳理了,这里做一个简单的分享! Android里面测试相关的工具和框架太多了。你应该从以下几个方面入手。 编程语言的选择 如果你要学习的是Appium的话,当然它是移动自动化测试领域最流主流的工具之一,同时支持iOS和Android两大平台,最主要是还支持多种编程语言(Java/Python/C#/JavaScript…等),这是它能得到广泛使用的原因之一。如果你只想做APP UI层的自动化测试,那么,你完全可以使用自己熟悉的编程语言来做Appium自动化测试。 我发现用Python + Appium的人非常多。这主要是因为Python简单,在测试圈有广泛的应用基础。不过,这里我推荐使用Java,虽然我个人最熟悉的是Python。这里选择Java的主要原因是因为,我对Android自动化测试的学习不想只停留在UI层,我还想知道Android的单元测试怎么做,怎么调用接口?甚至是CPU,内存的调度是怎样的。 所以,我需要知道Android应用是怎么被开发出来的。Android应用的开发目前只能用Java,这就是我选择Java的理由。 从哪里开始入手 知道了我的选择,肯定也知道我会从哪里下手了。先不要着急去搭建Appium/Robotium这样的自动化能测试环境。建议先把Android开发环境搭建起来

Android CTS/VTS 介绍

早过忘川 提交于 2019-12-17 19:13:48
Android CTS CTS全称Compatibility Test Suite兼容性测试工具,为了保证开发的应用在所有兼容Android的设备上正常运行,并保证一致的用户体验,Google制定了CTS来确保设备运行的Android系统全面兼容Android规范,Google也提供了一份兼容性标准文档(Compatibility Definition Document,CDD)。当电子产品开发现来,并定制了自己的Android系统后,必须要通过最新的CTS检测,以保证标准的android application能运行在该平台上。通过了CTS验证,需要将测试报告提交给Google,以取得android market的认证。CTS是一款 通过命令行操作的工具。目前CTS没有提供windows版本,只能在Linux下测试 Android VTS VTS 由一套测试框架和测试用例组成,目的是提高安卓系统 ( 如,核心硬件抽象层HALs和库libraries ) 和底层系统软件(如,内核kernel,模块moduls,固件firmware等)的健壮性,可依赖性和依从性。 VTS 主要有两种测试套件: •自动化的(如,record-and-replay and fuzzing); •结构化测试(如,gTest and host-driven python);

Appium定位方式总结

这一生的挚爱 提交于 2019-12-17 15:09:08
通过appium-desktop定位元素 ClassName Android Android的class属性对应ClassName定位方式,ClassName一般都是会重复的,可以通过index来获取需要的元素。(从0开始查找dom树中的同名class属性) iOS iOS的type属性对应CLassName定位方式,ClassName一般都是会重复的,可以通过index来获取需要的元素。(从0开始查找dom树中的同名class属性) ID Android Android的resource-id对应ID定位方式,这个id也可能存在重复情况,可以通过index来获取需要的元素。(从0开始查找dom树中的同名resource-id属性) 使用appium-desktop来获取元素时,如果提示有id的定位方式,则可以只接获取,代表唯一。 XPATH Android Android的Xpath定位与PC的XPATH定位大同小异,可以通过相对路径的定位方式定位,区别在于,这里相对路径定位的//后只可以接Android的class属性或*。(//android.widget.Button[@text="登 录"]) iOS iOS10 以上使用XCUITest框架后,原生框架不支持XPATH,Appium进行了转换,速度很慢不建议使用。 AccessibilityId Android

安卓开发课程设计报告

我们两清 提交于 2019-12-17 11:57:26
湖南科技大学计算机科学与工程学院 综合实践能力创新实训-安卓开发课程设计报告 题 目: 新 闻 客 户 端 学 号: 1705010323 姓 名: 九 岁 ya 完成时间: 2019年12月15日 安卓开发-新闻客户端 1.设计要求 1.1 技术平台要求 1.熟悉 Android Stuido、Eclipse、SQLite 等常用 Android 开发工具。 2.熟悉一种语言,主要使用java语言开发。 3.设计并实现一个具体的 Android 应用系统,本次课程设计选择的是新闻客户端的题目。 (1)对选定的新闻客户端项目进行需求分析,写出需求说明书,并搜集、整理所需素材。 (2)根据项目需求,进行数据库(如果需要数据库的话)的概要设计与详细设计。 (3)根据需求说明进行项目的功能设计,画出每个界面的原型。进行详细设计,实现每个模块的功能。 (4)对项目进行部署与测试。 (5)分析总结项目的创新点和存在的不足,提出优化思路。 1.2 功能要求 对于要完成的新闻客户端项目需要做到以下功能: 1.掌握 Android 中的菜单及导航框架。 随着安卓开发的盛行,安卓应用占据了手机APP市场的绝大部分份额。随着市场的推动和技术的发展与沉淀,Android开发领域产生了很多实用并且容易开发的各类包和小型框架,例如速展示Adobe Afeter Effect(AE

Flutter踩坑之安装

自古美人都是妖i 提交于 2019-12-17 07:14:29
Flutter是Google使用Dart语言开发的移动应用开发框架,目前为beta版。 安装Flutter首先需要安装git。 在英文目录下执行git命令: git clone -b beta https://github.com/flutter/flutter.git 安装完毕之后,将Flutter添加至环境变量。[你的Flutter路径]\flutter\bin; 打开一个新的cmd命令行窗口,输入Flutter doctor并回车。执行结果会显示还需要安装哪些模块,按照提示一一安装后就可以开始写demo啦。 打开VSCode,安装Dart Code插件。执行查看->命令面板。选择Flutter:New Project,按照提示一步步操作,创建一个新项目。 F5执行调试命令,就会从网络下载依赖包并进行编译。由于某些原因,会出现下载失败的情况,打开项目下的android/build.gradle,将buildscript以及allprojects下的google()替换为maven {url 'https://dl.google.com/dl/android/maven2/'}。此外还要将[你的Flutter路径]\flutter\packages\flutter_tools\gradle\flutter.gradle当中的maven路径修改为https://dl.google

Android方法引用数超过65535解决

不羁的心 提交于 2019-12-16 16:34:43
随着应用不断迭代更新,业务线的扩展,应用越来越大(比如:集成了各种第三方SDK或者公共开源的Library文件、jar文件)这样一来,项目耦合性就很高,重复作用的类就越来越多了,SO:问题就来了。 相信大家在做自己公司项目时,都有机会遇到下面的错误: UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: method ID not in [0, 0xffff]: 65536 at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:501) at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:282) at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:490) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:167) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer

最后一次团队作业

偶尔善良 提交于 2019-12-16 10:49:34
1.格式描述 姓名 学号 所属课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign 作业要求 https://www.cnblogs.com/harry240/p/11524252.html 作业目标 总结回顾 整理资料文档 团队名称 七剑下天山 GitHub地址 https://github.com/BigTent0/HappyReading.git 2.团队成员 姓名 学号 博客地址 张鹏 201731062524(组长) https://www.cnblogs.com/BigTent/ 陈超 201731062510 http://home.cnblogs.com/u/kotofight/ 王慧 201731062504 https://www.cnblogs.com/lazy-bear/ 李邦国 201731062513 https://www.cnblogs.com/iron-man6/ 沈梓琳 201731062501 https://www.cnblogs.com/LIn000 何鑫懿 201731062122 https://www.cnblogs.com/hxywxy521 侯思其 201731062124 https://www.cnblogs.com/siqihou 3

Android MVP-编程思想1(什么是MVC-MVP-MVVM模式?)

帅比萌擦擦* 提交于 2019-12-16 03:39:13
前言 通过一个小的登录功能模块案例,帮助大家了解MVP。最终实现一个结合Rxjava2,Retrofit 的MVP通用框架。代码放到 github 上。 (如有错误之处,请在评论区指出,谢谢。如果感觉写的不错,请点赞,关注,谢谢。) 目录: Android MVP-编程思想1(什么是MVC-MVP-MVVM模式?) Android MVP-编程思想2(代码实现初级版) Android MVP-编程思想3(内存泄露问题处理,基类封装,有没有必要再使用软引用?) Android MVP-编程思想4(AOP思想-动态代理运用,反射创建M层实例对象) Android MVP-编程思想5(如何处理多个P层的问题?) Android MVP-编程思想6(依赖注入多个P层优化—注解,反射) Android MVP-编程思想7(为什么使用代理类抽取通用方法而不是工具类?,基类BaseMvpFragment) 未完待续-------- Android MVP-编程思想8(集成Rxjava2,Retrofit) 先讲一下mvc M-数据层:数据库,网络数据 V-视图层:layout,自定义view C-控制层: 一般是Acitivity,Fragment(处理业务逻辑) 实际上在MVC在andorid开发中很难区分Activity到底应该处于V还是C的角色

Android开发常用轮子

半城伤御伤魂 提交于 2019-12-16 03:30:59
一、快速开发框架 XSnow 基于RxJava2+Retrofit2精心打造的Android基础框架,包含网络、上传、下载、缓存、事件总线、权限管理、数据库、图片加载,基本都是项目中必用功能,每个模块充分解耦,可自由拓展 2.MVPArms 一个整合了大量主流开源项目高度可配置化的 Android MVP 快速集成框架(包括Mvp、 Dagger2、RxJava、RxAndroid、Rxlifecycle、RxCache、RxPermissions、RxErroHandler、Retrofit、Okhttp、AndroidAutoSize、Gson、Butterknife、AndroidEventBus、Timber、Glide、LeakCanary) 3.Android-ZBLibrary Android MVP快速开发框架,做国内 「Demo最全面」「注释最详细」「使用最简单」「代码最严谨」的Android开源UI框架 (包括OKHttp、UIL图片加载、ZXing二维码、沉浸状态栏、下载安装、自动缓存以及各种Base、Demo、UI、Util) 4.MVVMHabit MVVMHabit是以谷歌DataBinding+LiveData+ViewModel框架为基础,整合Okhttp+RxJava+Retrofit+Glide等流行模块