context

Android Launcher 研究学习

痴心易碎 提交于 2020-04-01 14:09:22
Launcher是系统启动后第一个启动的程序,是其它应用程序的入口,也就是我们的手机程序的桌面程序; 一、Launcher的定义及构成: <1>通过查看官方提供的Launcher源码可以知道其实Launcher也是一个Activity,不过它的intent-fliter有点特殊; <activity android:name="Launcher" android:launchMode="singleTask" android:clearTaskOnLaunch="true" android:stateNotNeeded="true" android:theme="@android:style/Theme.Wallpaper.NoTitleBar" android:screenOrientation="nosensor" android:windowSoftInputMode="stateUnspecified|adjustPan"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME"/> <category android:name="android.intent.category

Android实时监听网络状态(2)

旧街凉风 提交于 2020-03-31 04:00:09
Android实时监听网络状态(1) 其实手机在网络方面的的监听也比较重要,有时候我们必须实时监控这个程序的实时网络状态,android在网络断开与连接的时候都会发出广播,我们通过接收系统的广播就可以实现网络的监听。 1、添加访问网络和获取网络状态的权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET" /> 2、新建一个Application类并继承android.app.Application 申明变量保存网络状态 package com.javen.application; import com.javen.netbroadcast.NetUtil; public class Application extends android.app.Application { private static Application mApplication; public static int mNetWorkState; public static synchronized Application getInstance() { return mApplication;

ASP.NET Core应用针对静态文件请求的处理[4]: DirectoryBrowserMiddleware中间件如何呈现目录结构

*爱你&永不变心* 提交于 2020-03-31 02:53:57
原文: ASP.NET Core应用针对静态文件请求的处理[4]: DirectoryBrowserMiddleware中间件如何呈现目录结构 和StaticFileMiddleware中间件一样,DirectoryBrowserMiddleware中间本质上还是定义了一个 请求地址与某个物理目录之间的映射关系 ,而目标目录体现为一个FileProvider对象。当这个中间件接收到匹配的请求后,会根据请求地址解析出对应目录的相对路径,并利用这个FileProvider获取目录的内容。目录的内容最终会以一个HTML文档的形式被定义,而此HTML最终会被这个中间件作为响应的内容,“目录浏览器”的实现原理就这么简单。 [本文已经同步到《 ASP.NET Core框架揭秘 》之中] 目录 一、DirectoryBrowserMiddleware 二、DirectoryFormatter 三、具体请求处理逻辑 四、自定义DirectoryFormatter 一、DirectoryBrowserMiddleware 接下来我们来看看DirectoryBrowserMiddleware的定义。如下面的代码片段所示,DirectoryBrowserMiddleware的第二个构造函数具有四个参数,其中第二个参数是代表当前执行环境的HostingEnvironment

ASP.NET Core应用针对静态文件请求的处理[4]: DirectoryBrowserMiddleware中间件如何呈现目录结构

江枫思渺然 提交于 2020-03-31 01:32:12
原文: ASP.NET Core应用针对静态文件请求的处理[4]: DirectoryBrowserMiddleware中间件如何呈现目录结构 和StaticFileMiddleware中间件一样,DirectoryBrowserMiddleware中间本质上还是定义了一个 请求地址与某个物理目录之间的映射关系 ,而目标目录体现为一个FileProvider对象。当这个中间件接收到匹配的请求后,会根据请求地址解析出对应目录的相对路径,并利用这个FileProvider获取目录的内容。目录的内容最终会以一个HTML文档的形式被定义,而此HTML最终会被这个中间件作为响应的内容,“目录浏览器”的实现原理就这么简单。 [本文已经同步到《 ASP.NET Core框架揭秘 》之中] 目录 一、DirectoryBrowserMiddleware 二、DirectoryFormatter 三、具体请求处理逻辑 四、自定义DirectoryFormatter 一、DirectoryBrowserMiddleware 接下来我们来看看DirectoryBrowserMiddleware的定义。如下面的代码片段所示,DirectoryBrowserMiddleware的第二个构造函数具有四个参数,其中第二个参数是代表当前执行环境的HostingEnvironment

ASP.NET Core应用针对静态文件请求的处理[5]: DefaultFilesMiddleware中间件如何显示默认页面

倾然丶 夕夏残阳落幕 提交于 2020-03-31 01:28:22
原文: ASP.NET Core应用针对静态文件请求的处理[5]: DefaultFilesMiddleware中间件如何显示默认页面 DefaultFilesMiddleware中间件的目的在于将 目标目录下的默认文件作为响应内容 。我们知道,如果直接请求的就是这个默认文件,那么前面介绍的StaticFileMiddleware中间件会将这个文件响应给客户端。如果我们能够将针对目录的请求重定向到这个默认文件上,一切就迎刃而解了。实际上DefaultFilesMiddleware中间件的实现逻辑很简单,它采用URL重写的形式修改了当前请求的地址,即将针对目录的URL修改成针对默认文件的URL。[本文已经同步到《 ASP.NET Core框架揭秘 》之中] 我们照例先来看看DefaultFilesMiddleware类型的定义。和其他两个中间件类似,DefaultFilesMiddleware的构造就有一个IOptions<DefaultFilesOptions>类型的参数来指定相关的配置选项。由于DefaultFilesMiddleware中间件本质上依然体现了请求路径与某个物理目录的映射,所以DefaultFilesOptions依然派生于SharedOptionsBase。DefaultFilesOptions的DefaultNames属性包含了预定义的默认文件名

Spring框架中的aop操作之一 及aspectjweaver.jar与aopalliance-1.0.jar下载地址 包含beans 注解context 和aop的约束

旧时模样 提交于 2020-03-30 21:13:16
(aspect oriented programming面向切面编程) 首先在原有的jar包: 需Spring压缩包中的四个核心JAR包 beans 、context、core 和expression 下载地址: https://pan.baidu.com/s/1qXLHzAW 以及日志jar包 commons-logging 和log4j 下载地址: https://pan.baidu.com/s/1mimTW5i 再增加一个 spring-aop-5.0.1.RELEASE.jar (用于注解,在Spring-framework库中包含) 再增加 spring-aspects-5.0.1.RELEASE.jar (在Spring-framework库中包含) aspectjweaver-1.8.12.jar (官方下载地址 http://mvnrepository.com/artifact/org.aspectj/aspectjweaver) spring收购的aspectj的一部分包只关于weaver的 aopalliance-1.0.jar (官方下载地址 http://mvnrepository.com/artifact/aopalliance/aopalliance/1.0) 上边是aop联盟的包 然后在 Spring

appium01:appium定位H5页面元素

﹥>﹥吖頭↗ 提交于 2020-03-30 13:57:03
目录 目录 扩展连接 一、 移动端的应用 1.1 Native应用 1.2 Web应用 1.3 Hybird应用 二、 Hybird应用H5元素获取 2.1 思路 2.2 步骤 2.2.1 识别app中的H5视图 2.2.2 在桌面端的谷歌浏览器中识别这个H5界面 2.2.3 代码端进入H5视图界面 2.2.4 操作H5视图界面元素 三、 appium操作H5元素代码示例 扩展连接 https://blog.csdn.net/galen2016/article/details/53534366 一、 移动端的应用 在手机移动端,支持3种应用格式: Native应用 、 Web应用 以及 Hybird应用 。 1.1 Native应用 Native,是安卓手机的原生应用,可以理解为普通的app; 1.2 Web应用 Web应用依托于浏览器展示,也就是我们所说的网页; 1.3 Hybird应用 Hybird应用是介于Native和Web应用之间的应用模式,在Native应用中嵌入web页面实现应用展示界面的个性化定制,也就是在应用中嵌入H5程序,比较常见的有微信小程序等,这些H5页面再移动端通过Webview( Android提供的显示网页的系统控件 )访问。通过uiautomatorviewer在定位元素时,只有一个UI WebView的界面,无法获取元素细节,如图1.1所示。 二、

JS事件派发器EventEmitter

让人想犯罪 __ 提交于 2020-03-30 04:39:37
原文地址: http://zhangyiheng.com/blog/articles/js_event_mitter.html 需求 随着Browser客户端JS越来越复杂,MVC( Client端)设计模式成为一个很好的开发选择, 而MVC开发模式中,最基础的功能就是把Model和View关联起来, 当Model发生变化的时候,View呈现做出相应的调整。 实现此功能最合适的方式莫过于事件Event了, 对于Event大家应该都很熟悉,比如dom中的button,可以通过addEventListener/attachEvent添加click事件处理。 而一般的object对象是没有事件派发功能的,基于此需求,实现了一个EventEmitter。 具体实现 /** * Created by taozh on 2017/6/22. * taozh1982@gmail.com */ var EventEmitter = function () { this.__z_e_listeners = {}; }; EventEmitter.prototype.on = function (evt, handler, context) { var handlers = this.__z_e_listeners[evt]; if (handlers === undefined) {

ThreadLocal的进化——InheritableThreadLocal

∥☆過路亽.° 提交于 2020-03-30 02:26:20
之前有介绍过 ThreadLocal,JDK 后来针对此做了一个升级版本 InheritableThreadLocal,今天就来好好介绍下。 为什么要升级 首先我们来想想,为什么要升级?这就要说起 ThreadLocal 的功能了。 我们知道,ThreadLocal 设计初衷是为了在多线程环境下,针对每一个线程能有一个自己的副本,这样可以在一定程度上解决多线程并发修改的问题。但是,我们可以在此基础上做一个拓展,比如 context ,我们可以利用 ThreadLocal 针对每一个线程都有一个自己的上下文,一般都是写成 ThreadLocal<Context> ,这样在这个线程上做的所有修改都可以被大家利用到。 此时设想一下,假如我们新建一个子线程,那这个子线程可以获取到父线程的 context 吗?理论上希望可以达成这样的效果,实际上呢?让我们看看: public class ThreadLocalContext { private static ThreadLocal<Context> context = new ThreadLocal<>(); static class Context { String name; int value; } public static void main(String[] args) { Context context = new

4.微服务-go-micro

蓝咒 提交于 2020-03-30 00:17:28
1.介绍 1.1go-micro 简介 ⚫ Go Micro 是一个插件化的基础框架,基于此可以构建微服务,Micro 的设计哲学是可插拔的插件化架构 ⚫ 在架构之外,它默认实现了 consul 作为服务发现(2019 年源码修改了默认使用mdns),通过 http 进行通信,通过 protobuf 和 json 进行编解码 1.2 go-micro 的主要功能 服务发现: 负载均衡: 消息编码: 请求/响应: Async Messaging: 可插拔接口: 插件地址:https://github.com/micro/go-plugins 2.实践 2.1go-micro helloWorld 2.1.1hello.proto syntax = "proto3"; //结构体 message InfoRequest{ string user = 1; } message InfoResponse { string msg = 2; } //接口 service Hello { rpc Info (InfoRequest) returns (InfoResponse){ } } 运行如下命令,生成go代码 protoc -I . --micro_out . --go_out . ./hello.proto 2.1.2server.go package main import (