activity

Appium的简答使用

核能气质少年 提交于 2019-12-12 23:25:20
Appium Appium 服务关键字 关键字 描述 实例 automationName 你想使用的自动化测试引擎 Appium (默认) 或 Selendroid platformName 你要测试的手机操作系统 iOS, Android, 或 FirefoxOS platformVersion 手机操作系统版本 例如: 7.1, 4.4 deviceName 使用的手机类型或模拟器类型 iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, 等。在 iOS 上,这个关键字的值必须是使用 instruments -s devices 得到的可使用的设备名称之一。在 Android 上,这个关键字目前不起作用。 app .ipa or .apk文件所在的本地绝对路径或者远程路径,也可以是一个包括两者之一的.zip。 Appium会先尝试安装路径对应的应用在适当的真机或模拟器上。针对Android系统,如果你指定app-package和app-activity(具体见下面)的话,那么就可以不指定app。 会与 browserName 冲突 比如/abs/path/to/my.apk或http://myapp.com/app.ipa browserName

Android Context完全解析,你所不知道的Context的各种细节

点点圈 提交于 2019-12-12 10:57:13
转自: http://blog.csdn.net/guolin_blog/article/details/47028975 Context相信所有的Android开发人员基本上每天都在接触,因为它太常见了。但是这并不代表Context没有什么东西好讲的,实际上Context有太多小的细节并不被大家所关注,那么今天我们就来学习一下那些你所不知道的细节。 Context类型 我们知道,Android应用都是使用Java语言来编写的,那么大家可以思考一下,一个Android程序和一个Java程序,他们最大的区别在哪里?划分界限又是什么呢?其实简单点分析,Android程序不像Java程序一样,随便创建一个类,写个main()方法就能跑了,而是要有一个完整的Android工程环境,在这个环境下,我们有像Activity、Service、BroadcastReceiver等系统组件,而这些组件并不是像一个普通的Java对象new一下就能创建实例的了,而是要有它们各自的上下文环境,也就是我们这里讨论的Context。可以这样讲,Context是维持Android程序中各组件能够正常工作的一个核心功能类。 下面我们来看一下Context的继承结构: Context的继承结构还是稍微有点复杂的,可以看到,直系子类有两个,一个是ContextWrapper,一个是ContextImpl

Glide生命周期原理

纵然是瞬间 提交于 2019-12-10 18:07:05
本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/uTv44vJFFJI_l6b5YKSXYQ 作者:连凌能 Android App中图片的展示是很基本也很重要的一个功能,在Android平台上有很多的图片加载解决方案,但是官方认可的是Glide。Android App的页面是有生命周期的,Glide比较好的一个功能就是具有生命周期管理功能,能够根据页面和APP的生命周期来管理图片的加载和停止,也开放接口供用户在内存紧张时手动进行内存管理。本文重点是生命周期源码的分析,不会从简单的使用着手。 一、综述 这是Glide源码分析的第二篇文章,第一篇是 《Glide缓存流程》 ,从资源的获取流程对源码进行分析。本篇会聚焦于生命周期模块的原理。开始之前先思考下面这几个问题: Glide怎么实现页面生命周期? Glide为什么对Fragment做缓存? Glide如何监听网络变化? Glide如何监测内存? 二、Glide生命周期传递 先来看with函数的执行, 会构造glide单例,而 RequestManagerRetriever在initializeGlide中会进行构造。 // Glide.java public static RequestManager with(@NonNull Activity activity) {

安卓学习UI组件-listView

佐手、 提交于 2019-12-10 14:05:06
1.ListView组件介绍 布局文件arrays.xml <?xml version="1.0" encoding="utf-8"?> <resources> <array name="name"> <item>C#编程词典</item> <item>JAVA编程词典</item> <item>VB编程词典</item> <item>VC编程词典</item> <item>ASP编程词典</item> <item>Delphi编程词典</item> <item>ASP.NET编程词典</item> <item>C#编程词典</item> <item>JAVA编程词典</item> <item>VB编程词典</item> <item>VC编程词典</item> <item>ASP编程词典</item> <item>Delphi编程词典</item> <item>ASP.NET编程词典</item> </array> </resources> <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android

Unity和Android通信以及AndroidManifest的合并

馋奶兔 提交于 2019-12-10 13:48:43
前言: Unity和android交互,这个问题,在百度搜一下,解决方案还是蛮多的,起初我也是照着百度出来的帖子一步步实现了.但是!大部分帖子只管功能实现根本不讲缘由,且实现的功能比较死板.看完这样的帖子,对学习完全没有帮助啊喂!想要在项目中使用交互代码相应的也会遇到许多问题(后面会说遇到的问题,以及解决方案). 适用人群: 1.unity开发者,不会使用AndroidStudio,通过本教程,可以了解Android Studio的基本使用. 2.搜索了很多unity,Android交互文章却没找到合适解决方案的同学. 使用jar还是aar进行通信? Jar中包含了原生java代码,如果我们只是测试通信,一个简单的jar包就能够通信,然而实际开发中,一般不可能只用一个jar包,在android工程中一般都会引用很多jar包 aar大概是设计出来用来替代jar来进行通信的,不仅包含了jar 还包含了提供的android资源(图片,布局文件等).这也是aar包比jar大的原因,我们可以通过删除不相关内容来降低aar包的大小. AndroidStudio: 打开AndroidStudio- NewProject: 新建activity之后,要在activity中引用unity的方法就需要引入unity的jar包,根据以下目录找到unity提供的jar: 根据在unity中选择的打包方式

HierarchyViewer

会有一股神秘感。 提交于 2019-12-10 08:40:55
/* Copyright (C) 2011 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software这里输入代码 distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ package com.android

AndroidManifest.xml文件解析

本小妞迷上赌 提交于 2019-12-10 08:02:00
一、关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, 和Intent Receivers,还能指定permissions和instrumentation(安全控制和测试) 二、AndroidManifest.xml结构 <?xmlversion="1.0"encoding="utf-8"?> <manifest> <application> <activity> <intent-filter> <action/> <category/> </intent-filter> </activity> <activity-alias> <intent-filter></intent-filter> <meta-data/> </activity-alias> <service> <intent-filter></intent-filter> <meta-data/> </service> <receiver> <intent-filter></intent

Tabhost中子Activity使用startActivityForResult后获取不到回调值问

余生长醉 提交于 2019-12-10 07:52:30
最近一段时间没有更新博客了,是因为一直忙于一个Android的项目,给某企业做一款基于北斗定位的物流车载终端。这个项目的难点在于平板的通信方式不是采用传统使用自带的通信模块,而是使用串口通过车载部标仪来进行通讯。对此,需要使用到NDK来开发和串口的通信服务,这个项目中我主要负责Android平板的所有界面和交互制作、以及业务逻辑的实现。我的另一名同学负责串口通信的开发,二人合作开发这个项目。整个项目组有十几个人,Android端就我们两个,所以任务还是很重的,目前进度过半,还是天天加班,虽然很累,但是成长的路上少不了辛苦,遇到问题、解决问题,我们一直在路上。 回归正题,今天主要是记录一个我开开发中遇到的一个小问题,其实这不是第一次遇到,之所以记录下来是为了提供我的解决办法供大家参考! 问题描述:当主Activity A是一个Tabhost布局,或者是一个ActivityGroup,在子Activity B中使用startActivityForResult来开启一个新的Activity C,新Activity C操作完后返回Activity B并传回一个值,这个值在Activity B的onActivityResult方法中无法取到。 问题原因:startActivityForResult后触发的回调方法并不在Activity B中,而是在Activity A中

Android Activity之间的数据传递

爷,独闯天下 提交于 2019-12-10 07:22:21
1、向目标Activity传递数据: 1 Intent intent=new Intent(this,Main2Activity.class); 2 //可传递多种类型的数据 3 intent.putExtra("name","张三"); 4 intent.putExtra("age",12); 5 startActivity(intent); 2、在目标Activity中取出数据 1 Intent intent=getIntent(); 2 //用getXxxExtra()取出对应类型的数据。取出String只需要指定key 3 String name=intent.getStringExtra("name"); 4 //取出int要指定key,还要设置默认值,当intent中没有该key对应的value时,返回设置的默认值 5 int age=intent.getIntExtra("age",0); 目标Activity销毁时,可以回传数据给上一个Activity: 1、启动目标Activity,并设置一个请求码标识当前Activity 1 Intent intent=new Intent(this,Main2Activity.class); 2 //startActivityForResult()方法可以启动一个Activity

【Android】前后台切换监听

流过昼夜 提交于 2019-12-10 06:41:36
【Android】前后台切换监听 Android 本身并有提供这样的监听,所以就只能走偏门了。 首先,需要定义一下,什么叫“前台”,什么叫“后台”。本文定义如下: 前台 Activity 处在 FOREGROUND 优先级 后台 App进程没有停止,除去在“前台”的所有情况 所以,退到后台的方式太多了,大致有: 按Home键 按“最近任务”键 从通知栏启动其他应用 从应用内部启动其他应用 关掉屏幕 既然是监听变化,所以肯定是在相关生命周期的回调中来进行处理。ActivityA 启动 ActivityB 的生命周期方法调用顺序如下: ActivityA#onPause -> ActivityB#onStart -> ActivityB#onResume -> ActivityA#onStop 从 ActivityB 回退到 ActivityA 的生命周期方法调用顺序如下: ActivityB#onPause -> ActivityA#onStart -> ActivityA#onResume -> ActivityB#onStop -> ActivityB#onDestroy 一个思路就是通过统计当前活动的 Activity 数目来计算。 在 Activity#onStart 中来检测前一个状态是否是“后台”,如果是,则触发“切换到前台”事件,并将活动 Activity 数目加1。