Android
文章平均质量分 76
安卓开发
你的益达啊
世界上最遥远的距离不是没有网络,而是我在if里,你在else里,似乎一直相伴又永远分离
展开
-
Android手把手教你实现日志打印框架
架构Log框架分析: 1.全局配置类HiLogConfig 2.全局管理类HiLogManager 3.对外暴露的方法HiLog 4.Log的类型HiLogType 5.格式化接口HiLogFormatter 6.线程格式化HiThreadFormatter ,堆栈格式化HiStackTraceFormatter 实现格式化接口 HiLogFormatter ...原创 2022-05-13 22:14:34 · 1511 阅读 · 0 评论 -
LiveData工作原理分析
分析paging工作原理前 ,要先了解下LiveData确保UI符合数据状态不需要手动处理生命周期 始终保持最新数据 时间总线LiveDataBus1.LiveData设置的时候遵循的观察者模式,当宿主的生命状态发生改变,LiveData会像里面注册的观察者发出通知,这时候我们可以再观察者的onChange里面更改ui,保持数据2.LiveData在注册的时候 会绑定生明周期 ,当宿主销毁的时候 LiveData反注册3.当宿主的生命周期变得非活跃状态的时候,那么它将在再次变成活跃状态.原创 2022-01-08 23:55:30 · 2165 阅读 · 0 评论 -
getSuperclass()和getGenericSuperclass() 的区别
最近写jetpack中 封装基类的时候用到了 两个方法 ,一直对 这两个 似懂非懂 ,今天来分析一下getSuperclass() :返回当前类的父类的classgetGenericSuperclass() : 返回当前类的父类的带泛型的classdata class User(val name : String , val age :Int)open class Persion<T , M : Serializable>{}class Test :Per.原创 2022-01-08 20:49:08 · 748 阅读 · 0 评论 -
Android制作.9图
前言:最近在做项目 需要图片作为背景 ,随着内容的长度宽度,背景跟随着扩大范围问题:随着内容的增多,背景图片会失真 变形 。解决:使用安卓的.9图可以解决这一问题一 .9图的概念.9图片是安卓app开发中的一种特殊图片 以.9.png解决 .9图使用可以让图片不会变形和失真 ,让内容在固定区域显示二.介绍.9图 首先.9图上下左右有4条黑线,分别是上下左右顶部:在水平拉伸的时候,保持其他位置不动,只在这个点的区域做无限的延伸左边:在竖直拉伸的时候,保持其他位...原创 2021-09-27 01:29:06 · 7392 阅读 · 0 评论 -
仿京东跑马灯效果
效果图Gradle:compile 'com.sunfusheng:marqueeview:<latest-version>'属性Attribute 属性 Description 描述 mvAnimDuration 一行文字动画执行时间 mvInterval 两行文字翻页时间间隔 mvTextSize 文字大小 mvTex...转载 2018-08-30 09:47:41 · 578 阅读 · 0 评论 -
Android全局异常捕获机制
文章背景程序猿或是程序媛们在开发Android项目的时候,经常出现各种奇葩的Crash,有可能是服务端返回数据的原因所造成的、也可能是客户端自己的原因。我个人认为出现Bug并不是那么的重要,快速定位问题才是解决问题的开始、如果我们有一个能够帮助我们快速定位异常的机制,那么不仅在开发的效率上提高,而且在维护成本也会在一定程度上降低成本。那么目前主流的第三方Bug分析框架有腾讯的Bugl...原创 2018-09-16 10:32:35 · 1446 阅读 · 0 评论 -
一款Android弹出框、对话框、Dialog、popuwindow
一款Android弹出框、对话框、Dialog、popuwindowExample UsageGradledependencies { compile 'com.longsh:OptionFrame:1.0.0' }//由于内部使用的25的api,所以直接使用可能会跟你的版本的不同,造成导入问题。建议下载源码把gradle修改成你对应的api...原创 2018-09-24 18:58:23 · 846 阅读 · 0 评论 -
BottomTabBar
咳咳,答应过年增加新功能的,没想到拖到现在,延迟了一个来月,尴尬,尴尬那个,我们先忽略这尴尬的事情吧,进入正题才是最重要滴老规矩,先上效果图: BottomTabBar.png跟原来的图有个很明显的区别,你们也一定都发现了,对不对。那么显眼的小红点,一定都看到了吧。当然除了这个,还增加了一项功能,虽然不是很明显,但相信也有小伙伴发现了吧,截图的这俩手机屏幕明显大小不同,但...原创 2018-09-04 14:30:37 · 479 阅读 · 0 评论 -
EventBus 3.0使用详解
01 前言当我们进行项目开发的时候,往往是需要应用程序的各组件、组件与后台线程间进行通信,比如在子线程中进行请求数据,当数据请求完毕后通过Handler或者是广播通知UI,而两个Fragment之家可以通过Listener进行通信等等。当我们的项目越来越复杂,使用Intent、Handler、Broadcast进行模块间通信、模块与后台线程进行通信时,代码量大,而且高度耦合。现在就让我们来学...原创 2018-08-31 15:44:48 · 101 阅读 · 0 评论 -
注解
annotation(@Retention@Target)详解一、注解:深入理解JAVA注解 要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。1、元注解(meta-annotation): 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotati...原创 2018-08-31 09:35:08 · 1224 阅读 · 0 评论 -
GuideView封装 实现app 功能引导页
package junbao.ma;import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics...原创 2019-03-05 19:43:56 · 1050 阅读 · 0 评论 -
GIT命令
码云托管git initgit remote add origin 码云地址git pull -rebase origin mastergit add .git commit -m "描述"git push origin master原创 2019-03-01 12:06:14 · 154 阅读 · 0 评论 -
面向对象思想
问题: 说下面向对象的思想? 答: 面向对象时JAVA的核心思想,面向对象相对于面向过程来说,我们简单举个例子老张开车去东北 面向过程的思想是:我先去造一个车,然后挂挡.,...去东北面向对象的思想是:我直接调一个车,找一个司机,告诉他去东北面向对象是将功能封装成对象,强调了具备功能的对象 面向对象 :可维护性,可扩展性,可重用性 封装,多态,继承封...原创 2018-12-13 15:09:52 · 560 阅读 · 0 评论 -
安卓广播动态监听网络工具类(c v 可直接使用,无需配置其他)
import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo;public class NetBro...原创 2018-11-23 15:50:53 · 398 阅读 · 1 评论 -
安卓动态配置Gradle切换生产测试环境
buildConfigField("String","BASE_URL",'"https://www.zhaoapi.com/"') buildConfigField("boolean","LOG_DEBUG","false")public class Constants { public static final String BASE_URL =原创 2018-11-23 15:47:45 · 671 阅读 · 0 评论 -
安卓友盟多渠道打包
第一步在app BuildGradle添加依赖 implementation 'com.umeng.sdk:common:latest.integration' implementation 'com.umeng.sdk:analytics:latest.integration'/*配置渠道*/ flavorDimensions "default" prod...原创 2018-11-23 11:53:48 · 1131 阅读 · 0 评论 -
Android Butterknife在library组件化模块中的使用问题
当项目中有多module时,在使用Butterknife的时候会发现在library模块中使用会出问题。当library模块中的页面通过butterknife找id的时候,就会报错。 如图,testbmodule模块plugin为library,也就是一个library的模块,然后看模块中的一个页面。 ...原创 2018-11-05 19:37:56 · 970 阅读 · 0 评论 -
Android多线程:这是一份全面 & 详细的HandlerThread学习指南
前言 多线程的应用在Android开发中是非常常见的,常用方法主要有: 继承Thread类 实现Runnable接口 Handler HandlerThread AsyncTask 今天,我将献上一份全面 & 详细的HandlerThread机制的学习指南,内容包括:定性认知、定量使用、工作原理 & 源码分析,希望你们会喜欢。 目录示...原创 2018-10-13 11:56:08 · 1413 阅读 · 0 评论 -
自学 js
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> tr:nth-child(odd){ background: gainsboro; } ...原创 2018-05-03 11:59:16 · 218 阅读 · 0 评论 -
Android:关于多线程的总结知识都在这里了!
前言 多线程的应用在Android开发中是非常常见的,常用方法主要有: 示意图 今天,我将献上一份全面 & 详细的Android多线程学习指南,希望你们喜欢。 目录示意图1. 多线程基础知识在了解Android多线程实现方式前,需了解一些多线程基础知识,如线程、进程等2. Android多线程实现方式Android多线程实现方式包括...原创 2018-07-15 21:27:56 · 290 阅读 · 0 评论 -
如何高效维持网络长连接:手把手教你实现 自适应的心跳保活机制
前言当实现具备实时性需求时,我们一般会选择长连接的通信方式 而在实现长连接方式时,存在很多性能问题,如 长连接保活 今天,我将手把手教大家实现自适应的心跳保活机制,从而能高效维持长连接目录示意图1. 长连接 介绍1.1 简介示意图1.2 作用通过长时间保持双方连接,从而:提高通信速度 确保实时性 避免短时间内重复连接所造成的信道资源 &...原创 2018-04-16 10:00:54 · 578 阅读 · 0 评论