
总结
陈旭金-小金子
在职
展开
-
Android ViewGroup中有关测量的方法
我们在自定义控件的时候,通常会涉及到测量的问题,onMeasure方法就是让我们的控件测量自身的一个方法,这里给出系统自带的一个现成的方法:1.一次测量所有的孩子protected void measureChildren(int widthMeasureSpec, int heightMeasureSpec) { final int size = mChildrenCou原创 2016-04-25 11:27:20 · 1718 阅读 · 0 评论 -
Android 开发中的注意点
前言 我们平常在开发Android的时候,经常会遇见命名感觉代码是对的,但是效果确实不尽人意的时刻.其实很多时候都是自己的代码或者其他地方没有注意到引起的.所以博主把博主开发的时候遇到的坑全都记录下来,方便自己查阅也做一个分享.会不断的更新资源文件方面selector选择器为什么不生效?如果你写的是点击反馈的选择器,那么做到下面两点就肯定生效了 1.状态是an原创 2017-07-12 18:33:22 · 369 阅读 · 0 评论 -
Retrofit 源码分析流程
前言 Retrofit 框架使用了有一年多了,但是说来惭愧,一直都是处于使用的状态,不会用的地方利用百度或者谷歌搜索一下.一直没有去摸索里面的源代码.这几天我对源代码进行阅读之后,不仅理顺了Retrofit 框架的实现,而且对泛型的认识提升到了一个新的高度.因为里面很多代码是对泛型进行处理的.下面就容许我给大家梳理一下Retrofit 的工作原理源码分析首先我定义一个接口文件public in原创 2017-07-30 18:03:13 · 1013 阅读 · 0 评论 -
Android Handler消息处理机制详解
前言从我们学习android开始,几乎每天都在和handler打交道.有了它,我们在子线程中处理好了耗时的操作,可以利用它来更新UI.它为我们在线程间的通信提供了很大的方便,而今天博客就来详细的介绍一下Handler的消息循环机制,一步一步的了解其中的奥妙,本文不介绍Handler的详细使用,探究的是内部的原理.所以看这篇博客的童鞋需要有handler的基本使用能力先抛出一个简单的原创 2016-05-11 10:48:24 · 13008 阅读 · 6 评论 -
面试总结
前言以下是本人面试过程中被问到的一些问题,这里做一个记录基础普及区Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念 你是如何理解MVC的M 就是数据源.所有的数据来源都可以视原创 2016-11-21 11:55:13 · 1030 阅读 · 0 评论 -
自定义View控件之onMeasure方法详解
前言转载请注明出处! 这类的文章很多很多,其实我也是不想写的.但是说起来我虽然看了很多很多的文章,但是对于View控件的measure方法还是一知半解的.那么今天我就来做一个总结,并且解决很多人问我的一些常见的问题.下面先把一些常见的问题罗列一遍 View控件中的measure方法被父容器调用,会引发测量的整个过程,也就有了onMeasure方法 父容器调用measure方法放在下原创 2017-07-25 23:12:30 · 6206 阅读 · 5 评论 -
ButterKnife 完全解析
前言 使用 ButterKnife 也有一段时间了,还记得我们从最开始的findViewById到现在使用注解来帮我们注入控件。其实这中间还有一个使用反射实现注入的一个阶段,真是因为在追求性能和今天,ButterKnife才会被广泛的使用.那么到底ButterKnife高效在哪里?今天博主带你全面了解ButterKnife本文针对版本8.8.0讲解首先在build.gradle中添加以下依赖必原创 2017-08-06 16:27:46 · 1498 阅读 · 2 评论 -
NDK 开发之 Socket 编程
前言 socket 作为开发人员必须掌握的一个技能,今天我在Android中使用到了.并且写出了一个小例子,本片文章作为一个记录实现流程盗用一张图: 流程中名称都是每一个步骤需要调用的函数名称/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>#include <stdlib.h>#include原创 2017-10-10 17:16:26 · 1813 阅读 · 0 评论 -
Android 资源文件命名规范
前言 在我们开发Android的时候,肯定会用到资源文件,color,dimen,string等等,当我们项目小的时候,我们使用资源文件并没有关注使用的规范.导致项目大了以后或者ui经过几次的改版之后,资源文件中的资源名称命名很是混乱.下面我就看看其他的文章和自身的经验,来总结一下资源文件中的命名规范以下的说法都是博主个人觉得比较好的观点,如果各位有什么不同的意见,欢迎讨论资源命名规范使用讲解原创 2017-09-06 15:35:56 · 4258 阅读 · 0 评论 -
Android 全面适配
前言 我们都知道哈,Android适配这块一直在困恼着我们.而之前的适配方案也很多 1.比如鸿洋的适配方案: 采用在Activity 创建转换xml的时候把系统的Layout换成自定义的,或者直接在xml中写自定义的&gt;Layout.然后在onMeasure方法中直接遍历整颗树来调整 视图的大小 上面的这个方案还有一种就是写成一个工具类,在Activity setC...原创 2018-06-16 09:00:38 · 775 阅读 · 0 评论 -
Android 组件化的实现
前言 哈哈哈哈,我又回来了,小金子又回来了,好久没写博客了,是时候更新一波了 最近项目在做组件化,然后这次给大家带来组件化的实现和应用组件化方案地址下面这张图我们很熟悉,我们今天要做的事情就是实现如下的架构组件化带来的问题Activity 之间的交互业务组件内的服务如何提供业务组件的声明周期怎么解决 我们带着上面的几个问题,我们来实现我们的组件化...原创 2018-08-17 16:33:55 · 2400 阅读 · 0 评论 -
Android DataSource 层实现
前言 在 Android 日益成熟和完善的阶段,我们的项目也日益的开始注重性能和可维护性.今天要和大家聊一聊Android 项目里面的 DataSource首先我们可以理解 DataSource 是一个单独的 Module,可以对外提供很多的数据操作 - 网络请求 - 本地的一些数据的持久化 - 一些第三方的数据封装 - 项目中一些Runtime的数据(比如用户信息,是否登录...原创 2018-09-11 09:52:53 · 2912 阅读 · 0 评论 -
mysq 配置远程登录
使用授权的方式:mysql -u root –pmysql>use mysql;mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;转载 2018-09-29 18:31:24 · 228 阅读 · 0 评论 -
Android 组件化应该做什么
前言Android 任何一个组件化方案都要对项目进行一定程度的整改,下面会对所有需要整改的地方进行说明,以及会说到如何整改资源文件资源文件在准备组件化的过程中就得做,不会影响正常的开发,一旦后续需要彻底剥离的时候,就直接把对应的文件拖到指定的模块就可以了公用的资源一个项目中肯定有一些是每一个地方都可能用到的资源,所以会有一个模块去存放这些东西,我可能新建一个 “ModuleResou...原创 2019-04-04 09:41:45 · 207 阅读 · 0 评论 -
RxJava2 进阶之Observable 的种类及其对应的场景
目录前言Observable 的种类真实代码中如何辨别使用哪种 **Observable**前言这篇文章主要讲述一件事情,如何正确的定义我们程序中的 Observable,下文中所有说到的信号,和我们常说的 RxJava发射的元素、Item、Error、Complete是同一类东西,但是我习惯叫它信号,在ObjectC中的Rac中也称之为信号Observable 的种类在 RxJava2...原创 2019-04-13 17:30:49 · 1224 阅读 · 0 评论 -
Mac有哪些软件可以显著提高生产力?
前言个人使用 Mac 三年了,在这三年中滚打摸爬,有好几个大神教我如何提高生产力,现在我觉得我是时候分享一下啦,让刚接触 Mac 的人可以使用到一些很好的软件首先,Mac 系统本身对于开发是非常友好的,个人本身结合了 Linux 和 Windows 的优势,对于开发人员真的是非常的友好,这句话真的是肺腑之言效率提升包管理器 HomeBrewhttps://brew.sh/这个我就不多...原创 2019-04-26 22:22:26 · 1593 阅读 · 1 评论 -
ListView复用和优化详解
前言我们每一个Android开发人员对ListView的使用肯定是很熟悉的,然而多少人能真正的懂ListView的缓存机制呢,说白了就是ListView为了提高效率而内部实现的一种优化,而这种优化就需要复用ItemView(也就是item对应的View).那么下面楼主来对ListView和RecyclerView的item复用问题做一个深入的讲解原创 2016-11-09 17:09:34 · 18167 阅读 · 16 评论 -
retrofit2 使用完全解析(1)
前言上一篇文章博主介绍了okhttp这个同步的网络请求框架的使用,也说了okhttp的优点,但是同时也指出了okhttp在使用方面的不便,所以本文介绍基于okhttp的网络框架retrofit的使用,还是同一个公司的产品.1.支持异步请求2.用户自己定义请求接口,由框架自动通过代理实现,这就相当于把网络请求的部分代码抽取出来,代码更加简洁3.利用注解描述请求的参数,极大的方便了用户原创 2016-06-10 17:31:28 · 5138 阅读 · 10 评论 -
Android 自定义TabHost
ps:我们平时在项目中经常用到TabHost作为引导页,实现的方法太多了,这里介绍使用比较多的一种吧两个效果都是通过xml搭建出来的这里说明底部的搭建过程<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.a原创 2016-04-29 15:34:43 · 3313 阅读 · 1 评论 -
Android 适配终结者
前言小金子最近可谓是忙的焦头烂额,项目赶进度,所以最近小金子博客的量可能会减少,但是小金子尽量多写博客,为了自己也为了分享更多的知识!在小金子做项目的时候,碰到了适配的问题,其实有很多人说,适配不就是多使用dp,sp等单位么,然后再values文件夹下建立针对不同设备或者说不同分辨率的文件夹来达到适配,但是小金子在做的时候感觉这种方法还是太繁琐了.所以本篇博客就是讲解如果使用适配小框架原创 2016-07-10 21:00:47 · 1095 阅读 · 2 评论 -
Android 属性动画详解
Component 是一个强大的、完善的组件化框架. 欢迎大家使用请尊重别人劳动成果 转载请注明出处:http://blog.youkuaiyun.com/u011692041/article/details/51471743前言 The property animation system is a robust framework that allows you t...原创 2016-05-21 21:47:53 · 4139 阅读 · 1 评论 -
Android 表情面板的展示和表情的显示
前言在Android项目中由于是社交类的项目,所以里面用到了表情,表情是emoji表情,所以实现了之后,弄个demo分享一下,主要实现了表情的选择和显示,只是一个demo,剩下的靠大家自己去扩展国际惯例,先来个效果demo比较简单,就是展示表情并且点击之后显示在TextView上,如果你不会,那就往下一起做吧!xml布局<RelativeLayout xmln原创 2016-07-30 19:23:56 · 6260 阅读 · 4 评论 -
解决在软键盘弹出的时候挤压或者遮盖原有的布局
首先来看一下两种情况,对用户来说体验真是不好第一种:试图被遮盖,用户看不到输入的框框第二种情况:试图整个被往上挤压,导致博主上面的标题栏被顶上去了这两种站在用户的角度上都是不好的,所以给出一种方案思路:获取到键盘弹出的时候的高度,然后让部分试图移动一下下,为什么说部分试图呢?因为就像博主这里的标题栏博主就不希望他有所改变,下面是实现的效果图键盘弹出的时候原创 2016-07-18 09:04:31 · 16072 阅读 · 12 评论 -
判断android中列表是否在顶部
前言需求来自需要定制一个通用的下拉刷新的控件,但是不可避免的需要知道如果列表还可不可以上滑,所以自然而然的想到的了系统的一个下拉刷新的控件! SwipeRefreshLayout,对,就是这个控件,如果还没有用过的人可以去搜索使用一下,是一个十分方便的控件,但是如果公司要定制的效果那就没办法了,所以要向楼主一样需要自定义个。那么废话也不多说了,就直接教大家如何知道任何情况下一个控件是否还可以向原创 2016-08-23 19:28:19 · 1260 阅读 · 1 评论 -
VideoView播放视频的时候出现播放前透明问题
楼主遇到这个问题纠结了很久了,后来换了一个主题就解决了,哎,也不知道是什么问题.但是好歹解决了<activity android:name=".common.videoFullScreenPlay.VideoFullScreenPlayAct" android:theme="@style/Theme.AppCompat" />原创 2016-09-15 17:12:55 · 4966 阅读 · 5 评论 -
Groovy学习之环境搭建
1.下载安装包或者压缩包下载地址:http://groovy-lang.org/download.html如果在Window下建议选择最后一个Windows installer傻瓜式安装或者使用博主的下载地址:安装就是一路的下一步,这里不做演示了2.配置环境变量配置环境变量,这个和Java的配置一模一样3.实验安装的真确性然后打开我们的cmd窗口,敲原创 2016-10-13 22:36:44 · 3405 阅读 · 0 评论 -
Android NDk开发系列(疑难杂症篇)
前言在NDk开发中,开发者会遇到各种各样的问题,而博主也不是什么大神,只能说解决一个问题就往这篇博客上怼,我相信积少成多的道理,也相信随着博主的学习,这篇博文也会随着变长,同时也可以解决很多小白会遇到的问题1 开发环境如果我们要学习NDK开发,那么配置环境必不可少,而且环境配置出现了一点问题可能就会导致你不能够接下去正常的学习,那么就让博主带你们来配置一下NDK开发的环境1.1 N原创 2016-09-28 22:52:31 · 679 阅读 · 0 评论 -
RecyclerView的通用适配器的高级使用
前言博主由于项目中频繁的使用了V7包中的RecyclerView来代替ListView的列表展示,所以抽空基于ListView的通用适配器的原理,给RecyclerView也写了一个通用适配器主要支持以下功能:1.支持item的点击事件2.支持item中的控件的点击事件(博主觉得具有创新性)3.支持添加和移除头部(博主没有写添加尾部的方法,其实和添加头部的方法是类似的,如果你有需要原创 2016-07-14 21:02:10 · 6942 阅读 · 2 评论 -
git学习笔记
ps:以下笔记均在windows下测试的,其他平台博主没有测试,请注意一.简单的命令1.添加文件到暂存区git add 比如: git add 1.txt 2.txt表示添加两个文件到暂存区,支持通配符2.查看状态git status 可以查看没有添加到仓库的文件,被更改的文件,被删除的文件,被重命名的文件.......是一个很重要的命令3.删除文件原创 2016-04-22 20:31:51 · 617 阅读 · 0 评论 -
过去的16年总结
1.学会了如何使用第三方分享和第三方登录2.学会了界面适配方案3.学会了使用阿里云的服务器来存储我们app的图片和文件,也可以是视频4.学会了荣云即时通信的使用5.完成四篇博客的目标,希望这个月再接再厉!原创 2016-08-04 16:27:43 · 851 阅读 · 1 评论 -
AsyncTask原理详解
内部有一个成员变量,获取了设备的cpu的个数private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors();1.内部核心线程个数为:CORE_POOL_SIZE = Math.max(2, Math.min(CPU_COUNT - 1, 4));2.最大线程数量为:MAXIMUM_POOL_SIZE =原创 2016-11-24 19:42:26 · 621 阅读 · 0 评论 -
Android开发踩过的坑
1.Fresco加载本地图片的问题在小米note 6.0手机上加载裁剪过的图片,发现有一个隐形的Bug,具体我也不清楚,只知道立即对裁剪过的图片地址进行加载的时候,加载失败,需要等待几秒后,重新加载就可以了,但是用Glide立即加载就没问题,这个问题很头疼!导致我在选择头像裁剪后不能正常显示2.资源文件命名的问题不能对每个界面的使用到的资源起唯一或者一个公用的名字,资源名称只要能描述这个资源的使用场原创 2016-10-20 10:15:51 · 1123 阅读 · 0 评论 -
什么是 Android 组件化
前言我希望阅读本片博客的童鞋都是有一定的 Android 基础的,并且近期想实施组件化方案的.希望这篇文章能帮助到你,让你知道什么是组件化,有哪些可选的方案什么是组件化下面这幅图相信大家平常多多少少都能看见类似的.最下面一层是 基础组件层, 包括但不止以下方面存储本地存储数据库存储文件存储SP 存储…网络请求实体对象基础类BaseActivity、BaseF...原创 2019-06-17 11:22:47 · 3403 阅读 · 5 评论