自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shuai_ge_feng的博客

安卓专栏

  • 博客(88)
  • 资源 (6)
  • 收藏
  • 关注

原创 framework.jar如何导入到android studio中进行framework的开发+系统签名

链接: 生成。

2024-04-22 15:10:06 523 3

原创 tinker官网加载demo的使用流程

tinker官网加载demo的使用流程0,首先开接入指南:https://github.com/Tencent/tinker/wiki/Tinker-%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%971,在gradle 找到tinker的插件,来判断tinker是否集成成功。2,安装一个现在有的old包 。会在这个目录下,生成一个文件.3,修改gradle的文件4,使用adb install -r 安装你的。apk5, 打补丁包6 ,把补丁包上传到sd中。注

2023-10-20 11:31:03 342

原创 在kotlin中使用高阶函数在viewbinding完成接口回调如adapter

【代码】在kotlin中使用高阶函数在viewbinding完成接口回调如adapter。

2023-06-05 09:45:44 299

原创 浅浅的理解MVI

官网解释:hl=zh-cnMVI在架构分层上和MVP没有本质区别,但区别主要体现在架构风格和编程思想上。MVI 是 Model-View-Intent 的缩写,它也是一种响应式 + 流式处理思想的架构。MVI 的 Model 代表一种可订阅的状态模型的概念,添加了 Intent 概念来代表用户行为,采用单向数据流来控制数据流动和各层依赖关系。在代码的层面上它分为三层:UI Layer(界面层) :在屏幕上展示应用界面和数据Domian Layer(网域层) :封装复杂或可复用的业务逻辑。

2023-05-20 08:53:25 1818

原创 图片的三级缓存代码案例

这个网站折叠代码。阅读起来极其恶心。删了全部文章。转战简书了https://www.jianshu.com/p/da0f1e781d91

2021-10-30 10:19:23 317

原创 设计模式之观察者模式

这个网站折叠代码。阅读起来极其恶心。删了全部文章。转战其他平台了https://www.jianshu.com/p/3aa20546388b

2021-09-23 14:31:43 164

原创 OkHttp自定义拦截器

/** * 自定义拦截器 */public class LoginIntercepter implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { Request build = chain.request().newBuilder() .addHeader("token","123")

2021-05-18 19:49:01 489 1

原创 浸入式状态栏

应该说是常用半浸入式(状态类透明) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //浸入式状态栏 View decorView = getWindow().getDecorView();

2021-05-17 20:37:04 423

原创 第十一单元PickerView和AndroidAutoSize

介绍地址 :https://github.com/Bigkoo/Android-PickerView/wikiAndroid-PickerView是一款仿iOS的PickerView控件,带有3D圆弧效果,并封装了时间选择和选项选择这两种选择器,详细特性如下:WheelView —— 基础控件带有3D圆弧效果。支持文字、颜色、大小设置。支持背景颜色设置。支持item的分隔线设置。支持item间距设置。支持设置是否循环。OptionsPickerView —— 选项选择器支持一、二

2021-04-28 19:25:47 220

原创 自定义ViewGroup实现子View按长度自动换行

自定义ViewGroup实现子View按长度自动换行样例代码使用样例代码package com.fenghongzhang.a181102;import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.View;import android.view.ViewGroup;/** * 显示一个viewgroup中子布局随着长度换行而

2021-04-06 21:29:15 587 2

原创 Java8新特性之lambda表达式(带实例)及新接口(Consumer、Supplier、Function、Predicate)

lambda表达式什么是Lambda表达式函数式接口1使用案例2**来一个带参数的用法**3来一个带参数和返回值的方法引用如何构建方法引用跳过理论看案例函数式接口内置4大接口Predicate:断言型接口Consumer 接口(消费者)什么是Lambda表达式可以把Lambda表达式理解为可传递的匿名函数的一种方式它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。这个定义够大的,让我们慢慢道来。学习lambda表达式就要先知道函数式接口是什么?函数式接口函数式接口(

2021-03-24 21:43:14 2653 1

原创 java8新特性之行为参数化

java8新特性之行为参数化为什么要有行为参数化?什么是行为参数化需求复杂变化让行为参数化多种行为,一个参数测试对付啰嗦解决啰嗦1(不太完美)解决啰嗦2(太完美)小结下一章 Lambda表达式为什么要有行为参数化?在软件工程中,一个众所周知的问题就是,不管你做什么,用户的需求肯定会变。。比方说,有个应用程序是帮助农民了解自己的库存的。这位农民可能想有一个查找库存中所有绿色苹果的功能。但到了第二天,他可能会告诉你:“其实我还想找出所有重量超过150克的苹果。”又过了两天,农民又跑回来补充道:“要是我可以找

2021-03-21 22:34:41 455 1

原创 环信集成

官网:1.打开首页https://www.easemob.com/2,注册开发者https://www.jianshu.com/p/1c8e59e62a483,下载环信的sdkhttps://www.easemob.com/download/im选择android端下载4,创建一个项目导入环信sdk,通过4.1和4.2步骤集成4.1implementation files('libs/hyphenatechat_3.8.0.jar')4.2 sourceSets {

2021-03-10 14:10:56 845 4

原创 用自定义view实现一个自定义输入框

自定义输入框的Viewpackage com.fenghongzhang.day017;import android.content.Context;import android.content.res.TypedArray;import android.text.InputType;import android.util.AttributeSet;import android.view.LayoutInflater;import android.view.View;import andr

2021-03-10 08:34:40 2918 6

原创 第十二天eventbus和Design

https://www.jianshu.com/p/122354d2243fDesign多个布局相互使用<?xml version="1.0" encoding="utf-8"?><!--协调者布局--><androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http:.

2021-03-02 21:37:02 551 3

原创 自定义ViewGroup实现宽度自动换行

自定义ViewGrouppackage com.fenghongzhang.day011;import android.content.Context;import android.graphics.Canvas;import android.util.AttributeSet;import android.util.Log;import android.view.View;import android.view.ViewGroup;import android.widget.Linear

2021-03-02 16:10:42 324

原创 第十一天的PickerView和AutoSize

PickerView和AutoSizePickerView是什么导包用法:在代码中使用效果图:PickerView是什么仿iOS的PickerView控件,带有3D圆弧效果,并封装了时间选择和选项选择这两种选择器。导包implementation 'com.contrarywind:Android-PickerView:4.1.9'用法:xml中的布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:and

2021-03-02 13:34:05 303

原创 第八天自定义view中的进度条显示

自定Viewpackage com.fenghongzhang.day005;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.RectF;import android.uti

2021-02-27 00:01:35 512 1

原创 第八天事件分发及案例

前言android事件处理,最复杂的就是对Touch事件的处理,因为Touch事件包括:down, move, up, cancle和多点触摸等多种情况,多点触摸的情况先不讨论,因为Touch有这么多的状态,所以Touch相对来说是最难处理的,下面就来讨论一下android是如何处理Touch事件的方法说明//分发 //super.dispatchTouchEvent(ev) --> 将事件向上传递 --> 交给父容器 处理是否分发 //true --> 不向下分发

2021-02-26 23:35:15 1745 5

原创 第8单元 自定义View与Touch事件分发

前言原生View不满足我们的业务需求,我们要自定义View自定义View基础类型定义自定义组合控件多个控件组合成为一个新的控件,方便多处复用继承系统View控件继承自TextView等系统控件,在系统控件的基础功能上进行扩展继承View不复用系统控件逻辑,继承View进行功能定义继承系统ViewGroup继承自LinearLayout等系统控件,在系统控件的基础功能上进行扩展View绘制流程onMeasure测量View的宽高setMeasur

2021-02-25 21:50:13 861

原创 第3单元 mvp架构,dagger2,butterknife的使用

前言框架发展mvc mvp mvvm mvpvmMVP把Activity,Framgent中的UI逻辑抽象成View接口把业务逻辑交给Presenter主持Model类还是原来的Model使用MVP的好处分离了视图逻辑和业务逻辑,降低了耦合Activity只处理生命周期的任务,代码变得更加简洁视图逻辑和业务逻辑分别抽象到了View和Presenter的接口中去,提高代码的可阅读性业务逻辑抽到Presenter中去,避免后台线程引用着Activity导致Activity的资源无法被系统回收从

2021-02-13 11:44:38 1061 2

原创 第七单元属性动画以及差值器以及svg动画

属性动画的意义一、背景有了补间动画,为什么还需要属性动画补间动画限制:1、补间动画只能定义两个关键帧在透明、旋转、位移和倾斜这四个属性的变换,但是属性动画可以定义任何属性的变化。3、补间动画只能对 UI 组件(view)执行动画,但属性动画可以对任何对象执行动画。4、补间动画没有改变view 的属性,只是加了视觉效果5、补间动画效果单一属性动画的优势:1、任何对象都可以,不在限制于View2、不止是四种基本变换属性动画特点https://www.jianshu.com/p/2412

2021-02-09 19:03:35 569

原创 第六单元补间动画以及帧动画使用

动画的详解介绍总览 https://www.jianshu.com/p/35d25cc205e7补间动画介绍 https://www.jianshu.com/p/733532041f46属性:其中AnimationSet是其余几种以及其他AnimationSet的组合基本属性:其中,Duration:持续时间,单位是毫秒Interpolator:插值器插值器列表Alpha属性Rorate属性Scale属性Translate 属性AnimationSet

2021-02-09 13:36:45 574

原创 第五单元rxpermissions,rxlifecycle的使用

rxpermissions的介绍https://github.com/tbruyelle/RxPermissions?spm=a2c4e.10696291.0.0.44a719a4ahaTWq注意安卓的版本号必须是rxjava的3.0的版本以后摸机器必须是26以上的. 并且模拟器8.0是有错误的.所以 直接9.0导包allprojects { repositories { ... maven { url 'https://jitpack.io' }

2021-02-09 12:07:01 497

原创 RecycleView的使用及交换item位置和左滑删除

导包implementation ‘com.android.support:recyclerview-v7:27.1.1’主页面中布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xml

2021-02-05 16:14:25 663

原创 SpringMVC之JDBC编程

https://www.jianshu.com/p/2936390bf99f

2020-09-24 15:35:04 307

原创 MySql的数据完整性约束

实体完整性(主键约束 唯一约束 自增长)域完整性 (非空约束 默认值约束)引用完整性(外键约束)约束主键约束主键约束:被主键约束所约束起来的字段,该字段中的数据不能为NULL,不能重复[非空,唯一]注意:每张表中只能有一个主键约束DROP TABLE dept;在创建表的时候,添加主键约束CREATE TABLE dept(deptno INT PRIMARY KEY, – 给deptno字段添加主键约束dname VARCHAR(10),address VARCHAR(100

2020-09-24 14:36:47 366

原创 MySql对数据的增删改查

SQL简介SQL语言是一种数据库查询和程序设计语言。其主要用于存取数据、查询数据、更新 数据和管理关系数据库系统。SQL语言是IBM公司于1975年〜1979年之间开发出来的, 主要使用于IBM关系数据库原型System R。在20世纪80年代,SQL语言被美国国家标 准学会(American National Standards Institute,简称为 ANSI)和国际标准化组织(International Organization for Standardization,简称为丨SO)通过为关系数

2020-09-24 11:55:36 281

原创 MySql数据类型及创建库操作

数据库的常见操作登陆MySQL服务器Mysql –u userName –pPwd查看所有的数据库Show databases;创建数据库Create dadtabase dbName;使用/切换数据库Use dbName查看正在使用的数据库Select database();删除数据库Drop database dbName;MySQL的数据类型整数类型浮点类型字符串类型日期与时间类型表的常见操作查看当前数据库中的所有表Show tables;创建表C

2020-09-24 11:44:43 145

原创 MacOS安装RabbitMQ和使用

Broker:消息队列服务进程,此进程包括两个部分:Exchange和QueueExchange:消息队列交换机,按一定的规则将消息路由转发到某个队列,对消息进行过虑。Queue:消息队列,存储消息的队列,消息到达队列并转发给指定的 Producer:消息生产者,即生产方客户端,生产方客户端将消息发送Consumer:消息消费者,即消费方客户端,接收MQ转发的消息。

2020-09-18 14:30:19 501

原创 第二天ARouter的介绍和使用

官方使用说明官网典型应用从外部URL映射到内部页面,以及参数传递与解析跨模块页面跳转,模块间解耦拦截跳转过程,处理登陆、埋点等逻辑跨模块API调用,通过控制反转来做组件解耦基础功能1, 添加依赖和配置android { defaultConfig { ... //每一个用的build.都要加 javaCompileOptions { annotationProcessorOptions {

2020-09-14 23:55:40 1153

原创 第二天Android系列之组件化Calces

什么是组件化就是将一个App分成多个模块,每个模块都是一个组件(Module),开发过程中我们可以让这些组件相互依赖,或者单独调试部分组件等,但是最终发布的时候就是将这些组件合并成统一的Apk。为什么要组件化随着产品的迭代,业务越来越复杂,随之带来的是项目结构复杂度极度增加,此时就会有如下几个问题:1、业务变化太快,单一的工程业务模块耦合度太高,牵一发动全身2、对工程作任何修改都需要编译整个工程3、功能测试和系统测试每次都需要进行4、团队协作开发存在很多冲突,不得不花费时间和精力进行沟通,

2020-09-13 18:38:31 620 1

原创 CentOS安装最新Redis

Redis 介绍Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。下载官网下载最新版本https://redis.io/download安装将下载完成的压缩文件上传到服务器上.如/usr/loca文件夹中

2020-09-12 20:47:37 176

原创 Spring boot 概述及入门

1. Spring Boot概述1.1. 什么是Spring BootSpring Boot是Spring项目中的一个子工程,与我们所熟知的Spring-framework 同属于spring的产品:首页Spring Boot简介可以看到下面的一段介绍:Spring Boot is designed to get you up and running as quickly as possible, with minimal upfrontconfifiguration of Spring. Spr

2020-09-10 22:06:51 164

原创 mysql 查询案例dept,emp表内数据

mysql 查询案例dept,emp表内数据部门表员工表工资等级表查询案例:部门表CREATE TABLE DEPT(DEPTNO INT PRIMARY KEY, – 部门编号DNAME VARCHAR(14) , – 部门名称LOC VARCHAR(13) – 部门地址) charset=utf8;INSERT INTO DEPT VALUES (10,‘ACCOUNTING’,‘NEW YORK’);INSERT INTO DEPT VALUES (20,‘RESEARCH’,‘D

2020-07-15 12:17:31 4661

原创 数据库查询练习案例

数据库查询练习案例课程表教师表学生表分数表查询案例课程表– Table structure for courseDROP TABLE IF EXISTS course;CREATE TABLE course (id int(11) NOT NULL,name varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,teacherid int(11) DEFAULT NULL,PRIMARY KEY (id)) ENGI

2020-07-12 14:26:21 614

原创 原生javascript实现一个轮播图(倒计时,自动翻页)

javascript实现一个轮播图 倒计时 自动翻页html和js代码css 代码html和js代码<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <link href="css/banner2.css" rel="stylesheet"/> <script> window.addEventLi

2020-07-11 16:42:34 1356 1

原创 配置IDEA自带maven的仓库映像(mac设置和window设置)阿里云镜像

因为IDEA本身是带有maven的,所以我们不用下载本地的mavne,也可以使用的.由于IDEA自带maven的仓库映像是国外地址,下载jar包比较慢.所以我们配置成阿里云的镜像.mac 配置1, 在IDES应用程序点击右键,进入包管理.找到plugins 文件夹.在找到maven中自带maven目录中的settings.xml文件2,在maven的setting.xml文件夹中,做如下修改.```javaalimavenaliyun mavenhttp://maven.aliyun.

2020-05-10 22:01:53 1124

原创 设计模式之迭代器模式

目录说明:优缺点:实现说明:正常我们是不需要实现自己的迭代器的,迭代器模式,在各大语言中,均有实现.如遍历集合中的内容.数据库返回结果集等.优缺点:迭代器(Iterator)模式的定义:提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。迭代器模式是一种对象行为型模式,其主要优点如下。访问一个聚合对象的内容而无须暴露它的内部表示。遍历任务交由迭代器完成,这简化了...

2020-04-20 18:46:16 126

原创 android开发利器之BufferKnife的介绍和使用

BufferKnife介绍使用导包插件安装使用介绍butter knife是出自JakeWharton的一个开源库,它通过注解的方式来替代android中view的相关操作。减少大量的findViewById以及setOnClickListener代码,且对性能的影响较小.ButterKnife项目地址:https://github.com/JakeWharton/butterkni...

2020-04-05 10:01:25 1212

2021最全常用弱口令集合.zip

常用弱口令集合,从3位到8位到 弱口令排行, 你想要的这里都有。

2021-12-29

c语言十个经典案例.zip

c语言十个经典案例,旗,贪吃蛇等等.

2021-03-30

安卓初级的思维导图.xmind

安卓初级的思维导图.

2021-01-15

04-SQLyog_Enterprise.zip

操作数据库的软件,你懂的,安装就能用.

2021-01-15

Android AndroidManifest 清单文件所有权限详解.doc

android 清单文件权限详解

2021-01-15

Android 开发工程师手册V1.0.docx

Android 开发工程师手册

2021-01-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除