我这个功能就是用视图动画来实现的。老规矩先看一下效果图 效果图 实现思路 用的是一个缩放的动画,还有一个渐变的动画来实现的,放大的时候透明度逐渐变弱。...细心的你一定看到有4个圆环,没错我这里用了4个ImageView,来执行这个这个组合动画,只不过每个View执行的时候,延迟一些时间。 上代码 (布局文件) android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com...> android="http://schemas.android.com/apk/res/android" android:shape="oval"> android...android:pivotY="50%" android:repeatCount="infinite" android:toXScale="3" android
之前笔者介绍了快递查询API接口,主要是需要输入快递单号主动查询,无论物流状态有无变化,都需要主动查询,有可能多次查询的结果是没有变化的。...有没有实时性更高的,当物流状态发生变化时,主动通知我的API接口呢?答案是有的,即“快递订阅推送API接口”。...与快递查询接口类似,快递订阅推送API,同样支持1500+快递公司,与官网同步数据更新。...下面来介绍快递订阅推送API接口的使用快递订阅主要分两步:先调用订阅接口,提交单号,发起订阅订阅成功后,当物流状态发生变动时,由接口提供者将当前物流状态推送给使用者订阅说明请求参数名称类型必须说明expressCode...顺丰速运、中通、跨越速运需要传入收/寄件人手机号或后四位手机号callBackUrl String 是 物流轨迹推送地址,以https/http协议开头,长度不能大于200推送说明当物流状态发生变动时,
原文链接: Android leak pattern: subscriptions in views 原文出自: Pierre-Yves Ricau 译文出自: 小鄧子的简书 译者:...所以我们决定在这个地方处理绑定视图的逻辑,并订阅用户名的变化。 上面的代码存在一个非常严重的bug:没有解除订阅。当尝试回收view时,Action1始终处于订阅状态。...让我们多了解一些这个View.onAttachedToWindow(): 当view被添加到一个已经加载到window的父view中时,addView()的内部会立即调用onAttachedToWindow...当View被添加到一个还没有加载至window的父view中时,onAttachedToWindow()将会在父view被加载到window后执行。...我们用Android中的惯用方式来填充view层级: public class MyActivity { @Override protected void onCreate(Bundle savedInstanceState
和尚我今天升级适配 SDK-API 27,可谓艰难险阻,真的好磨人,记录一下遇到的两个比较重要的问题,希望各位不会掉坑。...和尚我是由 26.1.0 准备升级到 27.1.1,首先是更换 SDK-Version 等,然后下载 SDK,一切正常,等到下载完 sync now 同步时,却报了如下错误: ? 2....和尚我首先把 AndroidManifest.xml 中注册的 Activity 均去掉该属性 android:screenOrientation="portrait"; 4....为了横竖屏的切换,和尚我添加了一个 values-26 的文件夹,存放针对 Android8.0 以上手机的 style.xml,将 android:windowIsTranslucent 属性改为 false...Tips: Android8.0 的适配还会涉及很多东西,需要不断测试研究,并及时处理。 ---- 以下是和尚我的公众号,欢迎闲来吐槽哦~
取代在使用该参数时进行检查,这样能更早的发现问题。或者在 一个普通的方法中,一个 参数必须不能为null ,那么我们在这个方法的第一行就做出判断,如果参数为null,抛出空指针异常。...if(getIntent() == null) throw new NullPointerException("缺少必须的参数"); if(!...getIntent().hasExtra("argument_name")) throw new NullPointerException("缺少必须的参数"); 5.判断字符串是否空 if(TextUtils.isEmpty...(str)){ //doSometing } 6.对字符串比较时,如果和常量进行比较,把常量放在前面,比如: “good".equals(var) 优于 var.equals...("good") 7.将某个对象 toString时,比如: String.valueOf(obj) 优于 obj.toString() 8.使用注解 @NonNull 和 @Nullable
Android中大多数应用都会发送和接受HTTP请求,在Android API中主要由两个HTTP请求的相关类,一个是HttpURLConnection,另一个是Apache HTTP Client。...但是繁多的API的现实下,对其改善与保持兼容性不可得兼,明显Android团队的精力已然不在Apache HTTP Client。...这个类虽然一开始比较简陋,但是其主要的几个API使得我们更容易进行稳定改善。 连接池污染 在冻酸奶(Android 2.2)之前,HttpURLConnection有着一些烦人的bug。...这样即可以保证在连接时高效率地连接到最新的服务器,也可以在不破坏兼容性的同时连接到旧服务器。 响应缓存 从4.0开始,HttpURLConnection引入了响应缓存机制。...它API精简实用,默认支持压缩,响应缓存等。最重要的这是Android团队重点投入的,而Apache的版本已经被抛弃了。所以还是使用HttpURLConnection吧。
在 Android Service 未被绑定的情况下,调用 unbindService(connection) 会报错误:service Service not registered, 所以在解除绑定前要先判断连接是否处于绑定状态...void onClick(View v) { if(isBind){ //解除绑定前要判断服务是否是绑定状态,其实此处应该还要加入 connection 是否为null 的判断
Android 4.4 19 KITKAT Platform Highlights Android 4.3 18 JELLY_BEAN_MR2 Platform Highlights...Android 4.2, 4.2.2 17 JELLY_BEAN_MR1 Platform Highlights Android 4.1, 4.1.1 16 JELLY_BEAN...Platform Highlights Android 4.0.3, 4.0.4 15 ICE_CREAM_SANDWICH_MR1 Platform Highlights Android...4.0, 4.0.1, 4.0.2 14 ICE_CREAM_SANDWICH Android 3.2 13 HONEYCOMB_MR2 Android 3.1.x...2.3.4 Android 2.3.3 10 GINGERBREAD_MR1 Platform Highlights Android 2.3.2 Android 2.3.1 Android
经常需要在AndroidManifest.xml中配置sdk号,比如:android:minSdkVersion=”4”,却老记不清SDK与API版本的对应关系,查找后总结如下,供以后查看: 第一行为版本命名...,一般都是甜点 第二行为SDK,也就是平常经常说的android版本 第三行为API版本,开发者经常用到 AndroidWear(穿戴系统) Android 4.4w - API...Level 20 Lollipop 5.0 API Level 21 下面这段转自: http://www.cnblogs.com/hope250/archive/2011/04/04/2005409....html 有时候需要统计手机的型号和版本号,利用程序可以获取到相应的手机信息,对比两部手机发现,厂商不同,某个信息显示方式也不尽相同,具体见: String phoneInfo = "Product:..." +android.os.Build.PRODUCT; phoneInfo += ", CPU_ABI: " + android.os.Build.CPU_ABI;
在vscode时新增proto文件时,按下sr会出现一个快捷生成CRUD服务的例子 srvcrud 然后再protoc生成时发现报如下错误: map/proto/service.proto:85:3:...protocolbuffers/protobuf/blob/master/src/google/protobuf/empty.proto 但下载这个库然后再protoc里加入proto_path后又发现报google.api.http...找不到的错。...,查看grpc-gateway网关的源码,发现在1.11.3版本后此方法被删除,怀疑是我本地版本过低的原因,但go install、go get好几次这个gateway的库也是这个错,无奈之下,只能手动在...go mod里面降级,不得不说,这里go mod的强大性就体现出来了,改个数字就能降级升级。
1源码去哪了 最近Android API24的SDK Source终于放出来了,24编译的项目终于可以在Android Studio中查看源代码了,于是乎,很多开发者第一时间在SDK Manager...2源码在这里 原因就在于,在Android Studio的配置文件中,没有重新配置,很多开发者都是在24发布的时候就更新了24的SDK Platform,但是那个时候还没有Source,所以第一次写配置文件的时候...,Source的配置为空,而重新下载了SDK Source后,这个配置文件并没有被更新,所以也就无法查看源代码了,OK,那么知道问题后,就好办了,我们找到SDK的配置文件,Mac下的目录地址如下所示:...Windows系统的该文件,在User目录的.AndroidStudio2.1目录下。 ? 我们可以发现,这里SourcePath的内容为空,所以,我们把它修改成: ?...填写SDK中对应的Source即可,那么实际上,在下载到SDK24的Source之前,你同样可以通过这个方式来配置24的Platform关联到其它版本的Source。
使用Android Killer反编译,出现以下异常,特此记录: 1.resource spec: 0x01010543 当前 Apktool 使用版本:Android Killer Default...下载地址: https://down.52pojie.cn/Tools/Android_Tools/ 如下所示: ?...>java.lang.NullPointerException > at b.a.d.a.a.x.a(Unknown Source) > at b.a.d.a.a.x.a(Unknown Source...咨询了好多人,给出的答案几乎都是换ApkTool吧~!!! 扎心了。。。...修改Android Killer JDK配置,如下图所示: ?
由于 Window 的 decorView 默认是设置有 10dp 的padding。需要获取到decorView后设置其padding为(0, 0, 0, 0) 即可。...Logger.i(TAG, "onStart") super.onStart() setWindowParam() } /** * 设置dialog的
相信大家对于RecyclerView 都已经不再陌生,我们都知道RecyclerView等可滑动控件默认的是会有滚动条以及滑动到边缘时的阴影(光晕)效果的,那么怎样去掉这两个默认属性呢,在这里简单的记录一下...1、通过xml文件设置 android:scrollbars=""有三个属性 none:去掉滚动条 horizontal:设置水平的滚动条 vertical:设置垂直的滚动条 2、...,为false时无相应的滚动条 滚动到边缘的光晕效果 1、通过xml文件设置 android:overScrollMode=""同样有三个属性 never:去掉光晕效果 always...xml代码为: android.support.v7.widget.RecyclerView android:overScrollMode="never" android:scrollbars...="none" android:layout_width="match_parent" android:layout_height="wrap_content"/>
当设计、测试或发布一个新的Web API时,你是在一个原有的复杂系统上构建新的系统。那么至少,你也要建立在HTTP上,而HTTP则是基于TCP/IP创建的、TCP/IP建立在一系列的管道上。...25.授权:记住,当设计API时,并不是所有的用户都可以访问里面的任何对象。 26.批量操作:发送较少的请求来获取或修改更多的数据,最好的方法就是在你的API里使用批量操作。...28.统一的字符编码:在设计和测试API时,Web服务需要支持更多的英文字符。...29.错误日志:在设计API时,创建错误日志也是非常重要的。实践时最好创建两种日志记录,一个是服务器端,一个是客户端。...41.设计与客户:不要在真空中设计API,要与客户打交道或者一起来设计API,参考用户用例。 42.反馈:在设计API时,应提供一个通道供用户进行反馈, 43.自动化测试:API测试是最简单的事情。
小编吐槽 恶意应用和android手机的续航能力一样是令android用户格外头疼的一个问题(至少我就这么觉得 – -!)...,Facebook把它使用的用于数据加密的API开源了,的确是一件不错的事情。...不过,facebook开放了一个名叫,“Conceal”的安全工具的源代码,它提供了密码学的Java API接口,这些简单易用的接口可以让应用程序以最优的方式加密数据, Conceal专门为速度设计...一个更小的库,有益于兼容更多的android版本,以及减少后期的维护成本。”...这个库还提供了存储和管理秘钥的资源来提高android脆弱的随机数生成器的安全性。目前正式支持,2.3以及更高版本。不过也可以在2.2版本运行。
引言本文旨在系统性地阐述 Linux 环境下的网络编程基础,重点关注 Socket 应用程序接口(API)的原理与应用。...它提供了一套抽象的 API,允许应用程序将网络通信视为一种特殊的文件 I/O 操作,从而简化了网络数据收发的复杂性。...接下来,我们将逐步解析相关的系统调用和编程技术。Linux 上的 Socket API在 Linux 操作系统的设计哲学中,“一切皆文件”是一个核心概念。...服务器端执行 bind() 时,若希望监听本机所有可用的网络接口,应将此字段设置为 htonl(INADDR_ANY)。...\n向主题 'TOPIC-1' 发布消息: 1,242.42,214\n -> 已发送至客户端 5订阅与发布流程的内核视角梳理结合内核操作,我们重新梳理客户端订阅和发布时服务器端的处理流程:服务器初始化与监听
本人在使用UiAutomator做测试的时候,封装了很多方法,由于之前的文章并没有分享这些封装方法,导致阅读不畅。...里面有些过时的,暂时无用的大家可以忽略。 下面这个是对UiAutomator基本方法的封装,还有一个在测试报告生成的时候的基本方法封装,还有些辅助类,改天我整理一下也发出来。...; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color...; import android.graphics.Point; import android.graphics.Rect; import android.graphics.Bitmap.CompressFormat...E-mail:Fhaohaizi@163.com * @version 创建时间:2017年8月18日 上午10:53:24 * @alter 修改时间:2017年9月12日 09:20:29 * 类说明:基本api
对于Android自定义控件开发,多点触控是一个必须要懂的知识点。因为在正常的情况下操作正常的控件,使用多指操作时,基本上都会出现问题。当需要对多指操作进行兼容时,就需要这方面的知识了。...本文选自《Android自定义控件高级进阶与精彩实例》一书,带你了解多点触控的基本知识。 ---- —— 正文 —— 假如,我们做了这么一个功能,图像跟随手指移动。...这里需要注意, 第1根手指按下时,收到的消息是ACTION_DOWN; 随后的手指再按下时,收到的是ACTION_POINTER_DOWN; 当有手指抬起时,收到的是ACTION_POINTER_UP;.../ 2); canvas.drawText("追踪第2个按下手指的位置", 0, 0, mDefaultPaint); canvas.restore(); 有关Canvas的操作及写字的操作,在《Android...关于作者 启舰 本名张恩伟,Android研发专家、CSDN博客专家、CSDN博客之星,《Android自定义控件入门与实战》《Android自定义控件高级进阶与精彩实例》作者,电子工业出版社博文视点优秀作者
复杂项目即时通讯从android 5升级android x后遗症之解决#77 java.lang.NullPointerException解决-优雅草卓伊凡77 java.lang.NullPointerExceptionAttempt...object reference最常见是在 回调接口, 如 网络请求回调,第三方登录回调 返回的时候 调用 context.startActivity 时 context 为空导致。...,问题很多但是都可以解决,毕竟我们还接入了bugly专业版的sdk可以跟踪异常解决 NullPointerException 在 MainActivity.onPermissionsDenied 方法中的问题这个错误表明在...方法的第 35 行可能的原因你有一个 Integer 类型的变量,但没有初始化或赋值为 null从某个方法获取 Integer 返回值时得到了 null在将 Integer 转换为原始 int 类型时没有进行...35行(或附近),找到使用 Integer.intValue() 的地方,确保对象不为 null。