- 博客(104)
- 资源 (18)
- 收藏
- 关注
原创 LiveData源码分析
LiveData源码分析LiveData是Android提供的监听数据更新的框架,它能够感应Activity/Fragment的生命周期,接下来的内容我们来通过简单的用法去探索LiveData源码的核心知识点。LiveData感应生命周期的核心Android涉及到生命周期的时候,基本都是和Lifecycle类有关,我们先来看一下**LiveData.observe(LifecycleOwn...
2020-03-17 14:49:18
479
原创 ViewModel源码分析
ViewModel源码分析学习过ViewModel的都知道,ViewModel主要对数据进行存储维护,当在异常情况下(横竖屏)Activity被销毁的时候恢复数据。Android异常情况下维护数据的方法Activity.onSaveInstanceState和Activity.onRestoreInstanceStateFragmentActivity.onRetainNonConfig...
2020-03-14 17:04:05
272
原创 Mutidex源码分析和优化
Mutidex源码分析和优化因为单个DEX文件被限制在65535之内,在Android5.0以上的时候,Android系统开始支持多Dex,所以我们可以直接在build.gradle配置multiDexEnabled true就可以了,然后Android5.0以下仅仅支持单Dex,所以Google提供了相关的兼容库对Android5.0以下的系统进行兼容,这个兼容库就是Mutidex,接下我们将...
2019-10-19 10:15:47
445
原创 Android动画-Property Animation
Android动画-Property AnimationAndroid动画-Property Animation前言Property Animation 常见特性Property Animation是如何工作的Property Animation 和 View Animation的不同点ValueAnimatorObjectAnimatorAnimatorSet动画监听状态自定义TypeEva...
2019-07-18 19:26:17
387
原创 Android动画-Fling Animation
Android动画-Fling AnimationFling Animation也是一种基于物流的动画之一。它提供了一种物体运动减速的效果,受速度和摩擦力所影响,比如:[外链图片转存失败(img-VKgQGdZ4-1563080333644)(https://developer.android.com/images/guide/topics/graphics/fling-animation.g...
2019-07-14 12:59:30
1910
原创 Android 动画-View Animation
Android 动画-View AnimationAndroid 动画-View AnimationTween Animation通过xml配置文件创建动画通过Java对象创建动画Tween Animation 的监听事件重复模式解析Tween Animation 属性小结插值器小结Frame Animation使用Xml创建Frame Animation使用Java创建Frame Animati...
2019-07-05 14:45:55
299
原创 JsBridge框架原理全解析
JsBridge框架原理全解析前言JsBridge的整体框架JsBridge那些是值得我们学习的方面JsBridge是如何调用JavaScrpit方法的开源库是如何调用JavaScript的方法的呢?将参数封装为Message分发处理JsBridge是如何定义方法开放API给JavaScript调用的JsBridge接收到JavaScript的消息后如何处理总结前言GitHub源代码JsBr...
2019-06-19 09:37:22
2794
2
原创 WebView-JsBridge框架使用Demo
JsBridge框架使用前言JsBridge解决了那些问题JsBridge 搭建JsBridgeAPI使用Native调用JS的方法Native注册方法让JS调用设置默认的处理Handler给JS发送无需响应的数据前言GitHub源代码随着市面上WebApp应用的逐渐普及,Android中的WebView应用越来越广泛,使用WebView中比较经典的问题就是如何让Navtive和Js进行通信...
2019-06-13 20:52:34
1353
原创 Android-摄像头全解析之-Video应用
Android-摄像头全解析之-启用系统Video应用前言启动系统录制应用前言随着市面上越来越多的复杂应用出现,录制视频也是一个常用的社交功能点,这篇文章就来探讨一下,如何启用Android系统的应用,以及关于Android方面录制的相关信息。启动系统录制应用系统录制应用的注意事项和步骤几乎和拍照的一模一样,详细的步骤我就不详细说明了,有兴趣的伙伴可以先移步拍照系统应用进行详细了解。启动...
2019-06-04 16:32:54
847
原创 Android-摄像头全解析之-自定义拍照界面
Android-摄像头整理前言Android拍照功能实现的方式摄像头前言Android拍照功能实现的方式摄像头
2019-06-02 13:12:11
3086
原创 Android-摄像头全解析之-启用系统拍照应用
Android-摄像头全解析之-启用系统拍照应用前言调用Android的原生相机APP流程判断是否具备拍照功能拍照应用所需权限兼容6.0Android设备的运行时权限启动系统拍照应用更新图库前言原生Android 手机或平板有一个拍照APP,当我需要更少的步骤启用一个拍照功能的时候可以使用隐性跳转和系统的Android 拍照APP进行交互。调用Android的原生相机APP流程在注册清单...
2019-05-15 17:59:42
1074
原创 Android-BroadcastReceiver(广播接收器)专题
Android 广播接收器专题前言BroadcastReceiver在Android中的应用场景BroadcastReceiver的注册分类通过清单文件注册广播(静态注册)通过上下文注册广播(动态注册)Broadcast如何发送发送Broadcast的分类如何发送Broadcast从安全性考虑如何防止别人侵入自己的广播代码为广播接收器添加权限使用LocalBroadcastManager代替Bro...
2019-04-03 20:50:45
980
1
原创 WebView套壳实战
WebView套壳实战经验分享前言WebView的初级使用WebView对象的创建WebSettings我们需要设置些什么WebSettings是什么WebSettings有那些需要关注的项目基础WebViewClient我们需要关注那些问题基础WebChromeClient我们需要关注那些问题加载远程Url加载本地的Url使用WebView关注的一些问题如何避免WebView内存泄漏我们应当如何...
2019-03-23 17:04:34
2323
原创 JNI开发专题
Android JNI开发(以Android Studio2.2以上为例)#Android 开发JNI的基础概念和工具JNI:Java Native Interface的java本地接口语言,在Android虚拟机提供若干API以实现JAVA和其他语言的通信(主要为C\C++).NDK:Android开发JNI的工具包。ndk-build:Android Studio2.2之前使用的打包...
2018-11-19 15:29:00
427
原创 Recyclerview专题-Recyclerview初体验
Recyclerview简述和兼容包Recyclerview是Android官方5.0以后提出的一个新Widgets,以解决ListView、GridView在复用优化时需要编写大量冗余代码的问题。使用前需使用版本兼容包:com.android.support:recyclerview-v7:${supportVersion} 为什么Recyclerview比ListView、GridV...
2018-11-14 09:02:45
280
原创 从头写一个项目之Android库的配置
从头写一个项目之Android库的配置###Android所需类库的脑图###从图中我们可以看出,Android必须依赖以下类型的库:Android依赖的原生UI扩展库和兼容库HTTP访问库本地数据库路由库JSON处理库图片库多Ddex支持库Kotlin支持库测试库RXJAVA相关类库多Module统一版本号解决方案真正开发环境中,我们不可能仅仅只支持一个Modu...
2018-11-02 16:01:53
294
原创 前端开发之原生Ajax的封装
因项目需要 封装一波Ajax的使用:ajaxUtils.js获取Ajax的对象:// ajax 对象function ajaxObject() { var xmlHttp; try { // Firefox, Opera 8.0+, Safari xmlHttp = new XMLHttpRequest(); } ...
2018-08-29 19:33:02
661
原创 GreenDao3.0 源码分析-Dao层
Dao 是GreenDao进行数据查询的一层,起到非常重要的作用,今晚我们就来聊聊GreenDao是如何做增删改查的吧。 Order实体 我们从稍微复杂的Order进行分析,去除自动生成的代码,源实体是: @Entity(active = true, nameInDb = "ORDERS")public class Order { @Id ...
2018-05-13 11:08:59
818
原创 GreenDao3 常见问题汇总
1.UNIQUE constraint failed: DEVICE_FIND_CONFIG_HELPER._id (code 1555)class android.database.sqlite.SQLiteConstraintException:code: runtime解决办法: 首先entity中需要存在一个Long类型的主键(@Id(autoincrement = true) pri...
2018-05-08 23:01:07
734
原创 Arouter入门篇
Aouter的一款由Ali团队开发的Android路由框架,本文旨在讲解Arouter官方网站的Demo,而不是自己的Demo,因为我觉得官方的Demo已经足够满足开发的业务需求,就不必自己再轮一篇,本文是对文档的一些补充。官方地址git clone https://github.com/alibaba/ARouter.git 神传送下载源码我们先来闲聊下我们项目中可能用到的跳转业务功能:...
2018-05-06 22:08:18
5499
原创 Android Studio 常见问题汇总
1.Error:com.android.dx.cf.code.SimException: invalid opcode ba (invokedynamic requires --min-sdk-version >= 26)解决方法:在build中加入implementation "com.google.guava:guava:23.0-android"2. com.android.buil...
2018-05-06 21:37:37
8111
2
原创 Java代码生成框架-JavaPoet
介绍 JavaPoet是用于生成.Java源文件的Java API。 当处理诸如注释处理或与元数据文件交互(例如,数据库模式、协议格式)时,源文件生成可能非常有用。通过生成代码,您消除了编写样板文件的需要,同时也保留了元数据的单一来源。集成到项目中 <!-- https://mvnrepository.com/artifact/com.squareup/jav...
2018-05-06 17:14:49
3244
原创 GreenDao3.0 源码分析-DaoMaster和DaoSeesion
AbstractDaoMaster从图中我们知道,DaoMaster和AbstractDaoMaster是父子类的关系,我们先看AbstractDaoMaster:从上面类图中,我们知道daoMaster维护一个daoConfigMap以Dao.class为key维护一个映射关系,而且通过调用我们可以知道 AbstractDaoMaster的功能主要职责之一是创建注册DaoConfig,并且维护他...
2018-05-01 23:43:38
2047
1
原创 从头写一个项目---ToolBar的封装处理
最近有感而发,突然想着建立一个项目的基础库,收集一些项目中常见的问题,并且作为一个独立的基础Lib。今天我们封装ToolBar来进行开发,ToolBar是一个高度可独立定制的标题栏,每个项目都必不可少。源码地址使用前的准备首先、我们需要用到ToolBar,高版本Activity必须继承AppCompatActivity,以前还有一个ActionBarActivity.其次、app要继承无A...
2018-05-01 12:13:07
639
原创 Vue开发-底部导航栏组件
不多说直接上代码 BottomNav.vue:<template> <div class="footer"> <div v-for='(item,index) of items' :class='[item.cls,{on:index === idx}]' @click="$router.push(item.push)"> <img :src=...
2018-04-29 17:42:05
11089
6
原创 Weex 实践常见错误
1.guide module build instace failed.java.lang.IllegalAccessException:因为Module的构造方法设置了私有。
2018-04-26 17:54:52
615
原创 GreenDao3.0源码分析-Helper
图片原图可以从github 源码地址 ->GreenDao 文件中 亿图 打开。GreenDao3.0源码架构图 上面是我画的GreenDao分层,我们将根据分层逐步分析原理。GreenDao3.0原理 从图中我们可以看到,其实GreenDao3.0是以Android Sqlite为底层,然后做一些缓存使得大数据的时候能更有效的增删改查。GreenDao最吸引我的:一是对缓存的处...
2018-04-22 22:16:50
1377
原创 如何使用AndroidStudio3.0生成一个Jar文件
build目录生成的关键文件 我们打包.Jar文件的编译文件 build.gradle 是通过 apply plugin: 'com.android.library' 修饰的library包,直接编译build就能在目录文件中找到.class文件 .class文件就是我们需要的.jar包。 Android Studio3.0的目录在build/intermediates/bundles...
2018-04-19 20:53:01
950
原创 Jnekins配置Android自动构建常见问题
1.'gradle.bat' 不是内部或外部命令,也不是可运行的程序 或批处理文件。gradle没有配置并且选择了默认的default.2.. AAPT err... ERROR: Unable to open PNG file这是由于AndroidStudio3.0引起的 ,网上多说在gradle.properties配置android.enableAapt2=false可以解决,然后亲测后发现...
2018-04-14 15:18:33
368
原创 Dagger2进阶-简说SubComponent和Qualifier
前言Dagger2的介绍和配置Dagger2基础的使用Dagger2进阶-编译生成源码解读Dagger2进阶-范围的控制(Scope和Singleton)Dagger2进阶-Scope的源码探究 Dagger2进阶-简说SubComponent和Qualifier...
2018-04-07 12:54:45
825
原创 Dagger2进阶-Scope的源码探究
前言 Dagger2的介绍和配置Dagger2基础的使用Dagger2进阶-编译生成源码解读Dagger2进阶-范围的控制(Scope和Singleton)Dagger2进阶-Scope的源码探究项目源码传送门学习了Scope,我们一定很疑惑为什么Scope注解只能做到对Component...
2018-04-07 11:26:19
615
原创 Dagger2进阶-范围的控制(Scope和Singleton)
前言 Dagger2的介绍和配置Dagger2基础的使用Dagger2进阶-编译生成源码解读Dagger2进阶-范围的控制(Scope和Singleton)Dagger2进阶-Scope的源码探究 项目源码传送门注解解释 @Singleton:确定生成的类...
2018-04-07 00:12:02
1509
原创 Dagger2进阶-编译生成源码解读
前言Dagger2的介绍和配置Dagger2基础的使用Dagger2进阶-编译生成源码解读Dagger2进阶-范围的控制(Scope和Singleton)Dagger2进阶-Scope的源码探究 项目源码传送门 根据前面两...
2018-04-06 14:36:30
726
1
原创 Dagger2基础的使用
前言Dagger2的介绍和配置Dagger2基础的使用Dagger2进阶-编译生成源码解读Dagger2进阶-范围的控制(Scope和Singleton)Dagger2进阶-Scope的源码探究 项目源码传送门 这篇文章主要说关...
2018-04-06 10:59:24
1034
原创 Dagger2的介绍和配置
前言Dagger2的介绍和配置Dagger2基础的使用Dagger2进阶-编译生成源码解读Dagger2进阶-范围的控制(Scope和Singleton)Dagger2进阶-Scope的源码探究 项目源码传送门 Dagge...
2018-04-05 12:35:58
990
原创 如何实现反编译一个APP
前言: 开始反编译之前,我们要知道有三个工具,分别是apktool,dex2jar,jd-gui,其中apktool是用来反编译资源文件和注册清单这些资源的,dex2jar和jd-gui用来做java代码的反编译。反编译之前提醒大家以上工具尽量去官网下载新的版本,因为安全问题就是大家的攻防战,各大互联网公司也存在安全顾问,会做一些处理导致低版本无法反编译成功。 以下列出三个官网: ...
2018-03-31 10:02:53
32010
6
原创 ImageLoader使用的DiskLruCache硬盘缓存算法
转载自:简书的排版 最近在研究ImageLoader的源码,发现一个硬盘缓存比较通用的类,这个类不属于谷歌官方却受官方亲睐,基本硬盘缓存都可以利用这个类来实现。 我们先来说一下缓存记录文件journal文件:journal文件作用:记录缓存的文件的行为:删除、读取、正在编辑等状态。 “` libcore.io.DiskLruCache 1 1 1DIRTY c3...
2017-09-20 14:14:17
632
原创 ImageLoader源码解析-----ImageLoader的结构
最近在研究ImageLoader的源码,希望能分享出自己的思路。具体源码移步Github下载:https://github.com/nostra13/Android-Universal-Image-Loader 我们先不急着对源码进行讲解,如果有什么失误请大家留言探讨,我们先来了解一下ImageLoader的相关类依赖简略结构图:从图中我们可以分为三层: 1:UI层。 2:加载展示逻...
2017-06-23 09:12:33
359
原创 使用Springmvc和commons-fileupload-1.2.2.jar实现上传文件时,中文文件名乱码
当我们使用其进行上传文件的编写时,我们会出现一个问题,就是中文文件名字的时候会出现乱码,这里需要我们设置一个encoding编码,但是我们操作后会发现,我们把web页面,编译器的都改为utf-8还是不能解决问题,其实问题出现在配置MultipartResolver处理器的时候 我们需要添加 红色标记文字: class="org.springframework.web.multipar
2016-11-09 10:30:04
697
ScrollView置顶
2016-08-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人