Android事件分发机制详解 1. 基础认知1.1 事件分发的对象是谁? 点击事件(Touch事件)定义 当用户触摸屏幕时(View或ViewGroup派生的控件),将产生点击事件(Touch事件)Touch事件的相关细节(发生触摸的位置、时间等)被封装成MotionEvent对象事件类型(4种)事件类型 具体动作 MotionEvent.ACTION_DOWN 按下View(...
Android项目Git忽略文件 .gitignore 中需要配置的文件# Built application files*.apk*.ap_output.json# Files for the ART/Dalvik VM*.dex# Java class files*.class# Generated filesbin/gen/out/# Gradle files.gradle/buil...
Linux系统使用360加固Apk 1.360官网去下载一个360加固助手,解压安装包.2.cd 进入jiagu文件夹内3.进入.jar文件的同时输入用户名密码java -jar ./jiagu.jar -login 用户名 密码4.出现login success,下一步 ~/***.jks是jks文件的目录,后面依次是jks密码,别名,别名密码java -jar ./jiagu.jar -imports...
RxJava2 操作符和线程控制 一、创建操作符 在上一篇RxJava的使用中讲到create,just,fromArray创建操作符,在这里讲述interval 、range和repeat。 1.interval 创建一个按固定时间间隔发射整数序列的Observable,并且Observable会收到递增至,相当于定时器,如下: Observable observable...
Rrtrofit封装框架 1.添加方法:allprojects{ repositroies{ .... maven { url 'https://jitpack.io' } }}dependencies { /*网络请求框架*/ implementation 'com.github.AgnoiY:RetrofitFrame:1.1.9...
android 双击动画点赞效果 1.模仿抖音双击点赞效果public class AnimatorLove extends RelativeLayout { private Context mContext; float[] num = {-30, -20, 0, 20, 30};//随机心形图片角度 long[] mHits = new long[2]; public AnimatorLo...
Android 浏览器分享到APP 1.在配置文件添加权限<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />2.在配置文件中给分享到APP的界面(Acticiy)添加intent-filter<intent-filter> <action android:name="android...
详细讲解Android Studio中用Git——结合GitLab 1. 前言以前项目版本管理工具一直使用的都是SVN,现在换成Git,并且项目托管平台用的是GitLab。尽管经常使用GitHub,但是却很少用到分支,由于都是自己在写,也不使用开发版与发布版、打Tag那些,所以这里也详细讲下Git的用。这篇文章还是会按我以前的写作风格,写的浅显易懂,并且全程自己操作一遍,目的是为了初学者也可以看懂。2. 简介Git:Git是一个开源的分布式版本控制系统,能有效、高...
DataBinding的基本使用 1.DataBinding介绍2015年谷歌I/O大会上介绍了一个框架DataBinding,DataBinding是一个数据绑定框架,以前我们在Activity里写很多的findViewById,现在如果我们使用DataBinding,就可以抛弃findViewById。DataBinding主要解决了两个问题: - 需要多次使用findViewById,损害了应用性能且令人厌烦 - 更新UI数...
Android 马甲包制作流程 一、马甲包的制作流程1.配置马甲包的applicationId以及应用名称在app的build.gradle文件中添加马甲包的配置android { signingConfigs { config { keyAlias '****' keyPassword '****' storeFile file('...
BitmapRegionDecoder加载超大图片 1.BitmapRegionDecoder提供了一系列的newInstance方法来构造对象,支持传入文件路径,文件描述符,文件的inputstrem等if (o instanceof String) { inputStream = new FileInputStream((String) o); // 根据图片对应的BitmapRegionDecoder对象 mBi...
Glide设置和获取缓存的路径 1.接口GlideModule实现GlideBuider的实现类指定缓存的路径public class GiphyGlideModule implements GlideModule { public GiphyGlideModule( ) { } @Override public void applyOptions(Context context...
Android 8.0系统,版本升级不跳转应用安装页面 1.在AndroidManifest.xml文件中,添加REQUEST_INSTALL_PACKAGES权限<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />2.在打开安装包的代码中添加兼容Android 8.0的代码。/** * 打开安装包 * * @pa...
Android Fragment 静态和动态使用 1、Fragment的产生与介绍Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视。针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套app,然后拷贝一份,修改布局以适应什么超级大屏的。一个app可以同时适应手机和平板,那就是Fragment。可以把Fragment当成Activity一个界面的一部分,甚至Activity的界面由完全不同的Fragment组成,Frag...
RxJava的使用基本用法 一.RxJava是一个实现异步操作的库二.观察者模式 观察者:监视着被观察者的行为,当被观察者某个状态改变的时候会通知观察者,观察者会执行对应的操作; 被观察者:被监视的对象,当某个状态改变的时候会通知观察者; 订阅(或注册):将观察者和被观察者建立联系。常用的例子:点击Button后触发OnClickListener中的onClick()事件。在这个事件中他...
Android MD5加密(32位)和 Base64加密解密 1.MD5加密数据/** * <加解密实现类> */public class SecurityUtils { /** * md5加密 * * @param str * @return */ public final static String get32MD5Str(String str) { if...