Latest

SmartRefreshLayout使用记录

SmartRefreshLayout使用记录

之前在简书上面的一篇文章,挪到CSDN上来。 前言 此开源控件高度省力、美观,理应不会有太多的问题。奈何该项目的主页上面的说明并不能满足我的需求,因此大致翻看了其中的源码,得到了满足自己需求的用法。因此特意地记录下来自己对其的理解,算是对此控件使用的一个小小笔记吧。 需求 所涉及的需求很简单,也是非常常见的一种用法。下拉刷新,刷新完毕之后关闭刷新动画。 开始分析 为了达到这个小小的需求,首先翻看了其的说明文件。并没有与我的需求对应的说明,其上的说明也没有详细说明每个函数的更多用法,多的只是一笔带过的感觉。也许是作者相信我们的能力吧! 这一番得到的结果是: * autoRefresh()应该可以让刷新的动画显示;finishRefresh()应该可以让正在显示的刷新动画停止并消失;下拉刷新类似。 * 可以通过SmartRefreshLayout.setDefaultRefreshFooterCreater()设置默认的刷新时的动画;下拉加载类似。除此之外,还可以通过其的setRefreshHeader()方法,来设置;下拉加载类似。 * 可以通过setOnRef

Cmake的基本使用

Cmake的基本使用

这几天项目中接触到了NDK相关的东西,顺便把Cmake相关的东西补了一下。搞明白了之后, 使用CLion都得心应手了!这篇博客记录一些自己使用到了的并且理解了用法。 Cmake是什么 cmake最终生成的是相应的所需要的Makefile,但是Makefile有很多种,因此它可以起到一个跨平台的作用。 使用基本指令 命令 解释 示例 add_library 生成库,如.so add_library(TestLib SHARED library.c library.h) add_executable 生成可执行文件 add_executable(leetcode007 leetcode_007.cpp) target_link_libraries 链接其他库到目标库或者可执行文件上 target_link_libraries(executor ${PROJECT_SOURCE_DIR}/../TestCppLib/cmake-build-debug/libTestLib.so)

关于Bitmap相关的一些总结

关于Bitmap相关的一些总结

如何从当前View获取到Bitmap v.setDrawingCacheEnabled(true); v.buildDrawingCache(); Bitmap bitmap = v.getDrawingCache(); 如何从TextureView中获取Bitmap mTextureView.getBitmap(); 如何压缩Bitmap 压缩成适配目标宽、高的Bitmap /** * get a scaled bitmap from a file located in path, adjust to destWidth and destHeight * @param path the bitmap's file location * @param destWidth destination width * @param destHeight destination height * @return a scaled

安卓系统应用调试脚本

安卓系统应用调试脚本

这是一个对之前写的脚本的记录档案,自己也看不太懂当时的写法了,羞愧。用一个 repo 放这些脚本代码感觉有些浪费,干脆整个文章记录曾经的那段历史吧! 这代码的主要目的就是想少敲点命令,一步到位,做一个快男! 说明 - AndroidROMTools Android run script tools for debugging system apps or frameworks. This was used by myself when debugging system apps or frameworks. In this project, module names was not given to avoid the project name, but the main

ProjectA 项目辅助脚本档案

本文主要记录在做 ProjectA 时用到的 Python 脚本,因为用得频繁,所以做成了脚本,避免重复输命令。 项目树状结构图如下: . ├── CommonTips.py ├── DumpPhotos.py ├── FallWithMask.py ├── OfflineSoRunner.py └── main.py 它主要的功能是: * 从 Android 手机拉取照片(需要手机连接到电脑并且安装好 adb 命令) * 在 Android 手机上以 shell 的形式跑 so 库算法,一般是在 apk 上运行 * 这个带 mask 分析已经看不懂是什么意思了 入口:main.py import CommonTips import DumpPhotos import OfflineSoRunner import FallWithMask

MyEclipse中Maven的配置与使用

MyEclipse中Maven的配置与使用

Maven可以帮你搞定一些项目上的包依赖,与Android Studio中的Gradle有点类似,当然也有很大的不一样。目前认识还是有点粗浅,期待后续的深入。 配置 虽然MyEclipse上面也集成了Maven,但是版本比官网上的低一些。从官网上面下载最新的软件包,找个合适的位置解压,然后在环境变量中加入所解压目录下的bin目录。 具体的配置方式,视不同的Shell,修改不同的配置文件。再此处为zsh,修改了~/.zshrc的内容如下: 检查配置是否成功 还需要修改conf目录下的setting.xml文件的localRepository的路径。从注释我们可以看到,如果不设置的话,默认是在~/.m2/repository目录下。该目录的主要功能就是存放Maven从仓库里面下下来的包。 接下来在MyEclipse中集成我们下载后解压的Maven。打开Preference,依次选择Maven中的Installations与User Settings,添加Maven的路径以及配置文件后如下: 到此基本配置完成。 创建Maven项目 看网上的博客,创建Maven项目的方式

Service使用笔记

Service使用笔记

看过好几回了,但是还是好像每次都忘,可能是用得少,但是工作中看的一些源代码中用的太多了,可是每次用的时候都看一遍,有点浪费时间,还是自己做一个简单的总结,这样可能以后会快一些。 这篇在草稿箱里实在是存太久了。。。 Service的分类 启动型 通过调用startService() 启动,一旦启动,服务即可在后台无限期运行,即使启动服务的组件已被销毁也不受影响。 已启动的服务通常是执行单一操作,而且不会将结果返回给调用方。 绑定型 通过调用bindService() 绑定到服务,服务即处于“绑定”状态。绑定服务提供了一个客户端-服务器接口,允许组件与服务进行交互、发送请求、获取结果,甚至是利用进程间通信 (IPC) 跨进程执行这些操作。 仅当与另一个应用组件绑定时,绑定服务才会运行; 多个组件可以同时绑定到该服务,但全部取消绑定后,该服务即会被销毁。 服务在其托管进程的主线程中运行,它既不创建自己的线程,也不在单独的进程中运行(除非另行指定)。 Service的生命周期 因为其分两类,所以它的生命周期也有两种: 左边为启动型, 右边为绑定型. Service在清单

设计模式之代理模式

何为代理模式?代理,顾名思义可联想到代理人,代理人是干啥子的,帮别人做某件事的,且可能会根据一些具体的情况,做一些具体的处理。大概如此吧。 定义与作用 它提供了对目标对象另外的访问方式;即通过代理对象访问目标对象。代理对象是对目标对象的扩展,并会调用目标对象。 好处:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 实现 静态代理 简而言之,就是代理对象与被代理对象都实现同一接口,在代理对象中,调用被代理对象的相应方法,并加上一些自定义的其它操作,要使用被代理对象的方法时,只需要调用代理对象的相应方法即可。 缺点:如果增加接口中的方法,那么代理对象以及被代理对象都需要进行相应的修改,难以维护。 动态代理 不需要实现接口,利用JDK的API,在内存中动态地创建代理对象。代理对象不需要实现接口,但是被代理对象一定要实现接口,否则不能用动态代理。 代理类所在包:java.lang.reflect.ProxyJDK实现代理只需要使用newProxyInstance方法,但是该方法需要接收三个参数,完整的写法是: static Object new