最近项目中用到了ListView的下拉刷新的功能,总结了一下前辈们的代码,单独抽取出来写了一个demo作为示例。...private RotateAnimation animation; private RotateAnimation reverseAnimation; // 用于保证startY的值在一个完整的...= LOADING) { // 保证在设置padding的过程中,当前的位置一直是在head,否则如果当列表超出屏幕的话,当在上推的时候,列表会同时进行滚动 // 可以松手去刷新了 if...CustomListView 中有2个回调接口,OnRefreshListener 和 OnLoadListener ,分别对应 下拉和点击加载更多 时候的回调函数。...在下拉刷新完成之后要调用 mListView.onRefreshComplete(); 来隐藏掉 头部,调用 mListView.onLoadComplete(); 隐藏掉 底部的加载view。
Android上运用AOP的思想开发,可以快速的帮助我们简化在横向开发中的重复性工作,简单的说就是把涉及到众多模块的某一类问题进行统一管理比如:性能检测、日志打印手机等。...AspectJ实际上是对AOP编程思想的一个实践,当然,除了AspectJ以外,还有很多其它的AOP实现,例如ASMDex、javassist等,但目前最好、最方便的,依然是AspectJ。...} } apply plugin: 'com.android.application' android { compileSdkVersion 26 buildToolsVersion...final def variants = project.android.applicationVariants //在全局变量中配置编译项以及,对应的log输出 variants.all { variant.../Android-AOPExample 熟悉了一遍 补充:Android-AOPExample的例子下载下来,在gradle版本再2.3.0及其以上的版本编译会出现问题 报错误:No such property
OpenCV 介绍 OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。...在移动端上使用 OpenCV 可以完成一系列图像处理的工作。 二. OpenCV 在 Android 上的配置 我在项目中使用的 OpenCV 版本是 4.x。...在 Android Studio 中创建一个 Library,将官网下载的 OpenCV 导入后,就可以直接调用 OpenCV 中 Java 类的方法。...例子两则 3.1 作为二维码识别的兜底方案 在 Android 原生开发中,二维码识别有老牌的 zxing 等开源库。为何还要使用 OpenCV 呢?...总结 OpenCV 是一款功能强大的图像处理库。但是它本身体积也较大,在移动端使用至少会增加 Android Apk 包 10 M+ 的体积(主要取决于 App 要支持多少个 CPU 架构)。
4)BPF map 机制,用于在内核中以key-value 的方式临时存储BPF 代码产生的数据。...BCC在android系统上也可以运行,但是要对系统进行一定程度的修改,后续可能会写单独的文章进行讲解。对于内核开发者我还比较关注怎么自己来实现监控的功能,下文也将做简单的讲解。 ?...8)中断性能 三、eBPF框架 在开始说明之前先解释下eBPF上的名词,来帮忙更好的理解。...3)Maps:钩子代码可以将一些统计类信息保存在键值对的map中,来与用户空间程序进行通信,传递数据。...可以使用下面的命令调试动态加载 ? 4. 用户空间程序实现 下面我们需要编写用户空间的显示程序,本质上就是在用户态通过系统调用把BPF map给读出来。 ? ?
Linux 上有许多可用于查看网络设置和连接的命令。在今天的文章中,我们将会通过一些非常方便的命令来看看它们是如何工作的。 ifquery 命令 一个非常有用的命令是 ifquery。...ifup 和 ifdown 命令来打开网络连接并根据需要将其关闭,只要该文件具有所需的描述性数据即可。...ifconfig 命令 另外,ifconfig 命令完全不读取 /etc/network/interfaces,但是仍然提供了网络接口相当多的有用信息 —— 配置数据以及可以告诉你每个接口有多忙的数据包计数...上面显示的广播 (Bcast) 和网络掩码 (Mask) 地址表明系统运行在 C 类等效网络(默认)上,所以本地地址范围从 192.168.0.1 到 192.168.0.254。...netstat 命令 netstat 命令提供有关路由和网络连接的信息。netstat -rn 命令显示系统的路由表。192.168.0.1 是本地网关 (Flags=UG)。
【前言】一般来讲,Android使用的数据库都是自带的SQLite数据库。Web重量级的MySQL、Orcacle、NOSQL等都不适用于Android项目的开发。...但是我发现了一个Web上最近几年比较火的一个数据库 ---- MongoDB。查看它的官网发现,它还可以用于Android开发,而且官方文档也给出了一些API说明。...于是我决定写下这篇博客分享一下MongoDB在Android上怎么使用。...【说明】:MongoDB也可以在iOS上面使用,我是做安卓开发的,本文只讲解MongoDB在Android上面的使用,iOS的使用情况请上MongoDB官网自行查阅。...'org.mongodb:stitch-android-sdk:4.1.0' } 然后在module的build.gradle的android节点里面文件中添加java 1.8支持: android
本文介绍了Android ListView 实现上拉加载的示例代码,分享给大家,具体如下: ? 我们先分析一下如何实现 ListView 上拉加载。...当我们上拉的时候,会出现一个提示界面,即 ListView 的 Footer 布局。...定义一个加载接口,当上拉动作完成时候回调,用于标记状态并加载最新数据进行展示。...1、定义 Footer Footer 要实现的效果: 第一次上拉时,Footer 逐渐显示,文字显示为下拉可以加载,箭头向上,进度条隐藏。 当松开加载的时候,箭头隐藏,进度条展示,文字改为正在加载。......"); arrow.clearAnimation(); break; } } 4、下拉刷新完成回调 当上拉加载完成时,我们需要实现数据的刷新,并且要通知 Adapter 刷新数据,这里我们定义一个监听接口实现回调即可
如果以上还不足以说服您使用 ProGuard,其实移除无用代码和混淆所有名称还有其他更多的优化效果: 在一些版本的 Android 设备上,DEX 代码会在安装或者运行时被编译成机器码。...这些警告的一个原因就是,您的构建路径中没有加入需要依赖的 JARs,如使用了 provided (仅编译时)依赖。而有时候,在 Android 上这些代码的依赖在运行时并不会被真正的调用。...在某些情况下,ProGuard 的警告确实有助于您发现闪退的罪魁祸首和关于您配置上的其他问题。...加载 ProGuard 映射文件到 APK Analyzer 可以看到 DEX 视图中更多的信息 当您加载了映射文件到 APK Analyzer时(点击 “Load Proguard mappings…...tools 目录下(SDK/tools/proguard/proguard-android.txt),但在新版的 SDK Tools 和 Android Gradle 插件版本2.2.0+上,可以在构建时从
前言 不少同学在适配Android P的时候会遇到not permitted by network security policy问题: //使用HttpUrlConnection时遇到的异常 W/System.err...表示,为保证用户数据和设备的安全,针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行...Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输,需要使用下一代(Transport Layer Security)传输层安全协议,而 Android Nougat 和 Oreo...在Android P系统的设备上,如果应用使用的是非加密的明文流量的http网络请求,则会导致该应用无法进行网络请求,https则不会受影响,同样地,如果应用嵌套了webview,webview也只能使用...network-security-config> 然后在AndroidManifest.xml
一时兴起,想在Android上跑一下frpc,本来以为需要在PC上交叉编译后放到机器上才行,后来发现好像更简单,Android YYDS!...在~/go/bin ..../frpc ps:在给文章起名字的时候,第一时间是想着叫在Android系统上运行frp,slug顺手敲了run_frp_on_android,突然仔细一想,好像之前真没有思考过一个问题,当描述一个app...运行在某个系统的情况的时候,是说在Android上运行微信,还是说在Android中运行微信?...刚好英文中有对应的on和in。顺手一查,发现on貌似还是最贴切,于是本文结束。。。 Refer: https://github.com/fatedier/frp/issues/700
暑假刚开始的时候放假回家没带电脑,只能玩手机,想折腾一下博客都没有条件,在一个发现一个 app, termux 真的强大!...(初始化需要访问国外网站)安卓手机上的 linux 简直了,在手机就可以搭了一个 hexo 博客,只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅,还只想到这些!...一开始想回校后,折腾一下 hexo-admin 实现类似动态博客一样的多终端管理(手动滑稽),现在发现 termux 这样子的操作也不错嘛,挺装哔 hhhhhh**部署后的效果** 准备 Termux...文件管理器(RE,MT 文件管理器等高级一点的) 开始 打开 Termux,输入$pkg install nodejs安装 Nodejs,在输入pkg install git安装 Git。...编辑 写文章的话创建 md 文件命令和电脑上一样,文件管理器打开/data/data/com.termux/files/home/i/source/_posts/ 编辑文章 md 文件。
前言 之前写的一个LoadingBar,这次把LoadingBar加到下拉刷新的头部。从头写一个下拉刷新,附赠上拉加载更多。下面话不多说了,来一起看看详细的介绍吧。 效果图: ?...,上留白 + 文字(PPVIew)高度 + 下留白 float headerpadding = 10;//上留白,下留白 private int mYDown, mLastY; //最短滑动距离 int...监听下拉和上拉。...void onRefresh() { Toast.makeText(MainActivity.this,"亲,刷新了",Toast.LENGTH_SHORT).show(); data.add("测试数据...if (smalx bigx) { Path path = new Path(); //上面的贝塞尔曲线的第一个点,在大圆身上 float x1 = bigx + bigR * (float) Math.cos
在最近的项目中因为要用Android作为一个服务器去做一个实时接收数据的功能,所以这个时候就要去做一个Android本地的微型服务器。...那么此时我首先想到了spring boot,因为他是一个服务器的框架。但是实际上我们根本用不到这么大型的服务器框架,配置这些都太麻烦。...所以,我又找到了Ijetty、NanoHttpd和AndroidAsync这三个框架,都是比较微型的,适用于Android的。...; 4)笔者建议,最好处理一下跨域的问题,因为是Android有可能和h5联调,所以设置了跨域以后比较方便调试,当然某些场景也可以忽略,看个人需求;方法已经在以上代码中写了; 5)当然最后最重要的一点肯定是开启和关闭的代码了...5)说一下OPTIONS的坑点,因为AndroidAsync这个框架中封装的返回http的状态码只有两种,假如过滤方法中没有包含例如OPTIONS的请求方法,实际上返回给客户端的http状态码是400,
最近研究了一下android开发的一些框架,对于开发整体上具有一定好处,对于拓展测试修改也具有一定的优势。 ?...Model:用于数据的增删改查等,也包括一些数据对象 View:用于界面的显示与用户操作的接收,在Android里面View通常就是Actvitiy,Fragment。...Presenter:是View跟Model的“中间人”,接收View的请求后,从Model获取数据交给View。...return true; }else{ return false; } } } Presenter层: public interfaceIPresenter { void onCreate();//在Activity...mvp架构的实现
本文介绍下如何在在macOS 10.12 上编译 Android 5.1源码,导入源码到Android Studio中,把系统烧录到Nexus6手机中。.../storage-googleapis.proxy.ustclug.org/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo 2、在之前创建的大小写分区上建立一个工作目录...在https://developers.google.com/android/nexus/drivers#hikey中找到对应设备与源码分支的硬件驱动。...在源码根目录下调用下面的命令: $ source build/envsetup.sh 选择设备 因为我编译后需要烧录到Nexus6上,所以选择aosp_shamu-userdebug $ lunch aosp_shamu-userdebug...在OS X中使用jEnv管理多个Java版本 Import AOSP into Android Studio Nexus 6 恢复官方兼救砖 google官方指南
AI其中一个很重要的应用就是物体识别。 今天我们来看看如何在Android上实现这个功能。 物体识别 物体识别包括两个方面,一个是物体位置识别,划出图片中的物体在什么位置。...SSD 目前最优秀的物体识别神经网络能够识别1900多种物体。我们把这个网络落地到Android上看看它的效果怎样。...Android导入AI框架 要在Android上使用AI网络,首先需要集成能够解读AI网络的框架。...Google的Tensorflow在Android上做了专门的框架 - Tensorflow-Lite,它能够在移动端上高性能地运算AI模型。...在Android使用tensorflow我们可以只关注它的 Interpreter 类, 这个类负责加载 AI模型,同时将图片进行运算,输出预算结果。
prop="address" label="地址"> <el-alert v-if="isflag" title="正在努力<em>加载</em>中
第一类是 Medium 上热门文章的翻译,其实我也翻译过: 在 Android 上使用协程(一):Getting The Background 在 Android 上使用协程(二):Getting started...在 Android 上使用协程(三) :Real Work 说实话,这三篇文章的确加深了我对协程的理解。...在 Android 中,一般是不建议直接使用 GlobalScope 的。那么,在 Android 中应该如何正确使用协程呢?再细分一点,如何直接在 Activity 中使用呢?...我会通过简单的示例代码来阐述 Android 上的协程使用,你也可以跟着动手敲一敲。...协程在 Android 上的使用 GlobalScope 在一般的应用场景下,我们都希望可以异步进行耗时任务,比如网络请求,数据处理等等。当我们离开当前页面的时候,也希望可以取消正在进行的异步任务。
下面讲讲Lego在Android上一次小小尝试 一,MVP简介 ? MVC太过常见这里不啰嗦。实际应用MVC当中,Activity占据打部分的工作,View和Controller的身份分不清。...Model 在MVP设计模式中, View:由Activity充当,并且响应生命周期 Model:还是原来的数据层,网络,缓存,解析等。...触发到Activity的onStartAutoRequestFromeNet。View逻辑在Activity。 业务逻辑则由Presnter的requestAllDataFromNet去实现。...解耦,绝对的。不然抽这么多接口干嘛 2. 模块职责明确,层次清晰 3. Presenter可复用(在日迹的需求中,首页和4Tab公用一个Presnter) 4. 方便单元测试 5....三,Lego页面结构化 前面铺垫这么多,终于到我要吹水的时候了。MVC,MVP,还有MVVM等MVX系列的设计模式,都是一种大而全的统一管理。在项目结构中最为关键其实是:分模块! ?
我在推特上关注了很多国外的程序员大佬,包括一些著名框架的官方团队,比如 Facebook 的 React 开发团队,我经常能看到他们在推特中分享一些代码片段,是以图片的方式出现的,这些代码图片让我的印象很深刻...,我之前也疑惑为什么会有这么高大上的分享方式,但是没有找到答案,直到今天我在刷 Github 的时候,推给我一个热门库,随手点开来看了下,谁晓得无心插柳柳成荫,这样一个生成高大上代码片段的第三方库就在我面前了...这是一段 JavaScript 的代码,使用 carbon 分享出来的一个片段,怎么样,以后是不是把这样的代码放在博客或者推特上会很特别,也很美观易读呢?...安装之后, 用carbon命令在 Carbon 中导入你当前的 VS Code 文件 其他编辑器对应的插件也可以在 Carbon 的 github 文档中找到哦。...最后感谢社区提供了这么优秀的库,能让我们程序员更加自恋在自己的代码中,该文章也是为 Carbon 做一个小宣传,因为实在喜欢这个插件。 使用 Carbon,show me your code !
领取专属 10元无门槛券
手把手带您无忧上云