自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 轻松又酷炫地实现弹幕效果——手把手教学

前言更多代码,请查看我的github:https://github.com/shuaijia/JsPlayer ,喜欢的话就给个star!^_^ 也可以关注我的公众号,搜索 安卓干货营现在越来越多的视频网站或者客户端支持弹幕功能,弹幕功能似乎也成了很多人的爱好,发弹幕,看弹幕成了大家吐槽、搞笑、发表看法的一种方式。而国内弹幕的鼻祖应该就算A站和B站了。 弹幕(barrage),中文流行词语,

2017-09-30 15:11:42 8438 1

原创 SurfaceView+MediaPlayer封装之路

SurfaceView+MediaPlayer封装之路我的播放器叫做JsPlayer,喜欢的话,就给个star喽^_^https://github.com/shuaijia/JsPlayer这里我只介绍播放器封装思路,会贴出部分代码,如果大家想查看完整代码,可以去github查看,有不清楚或错误或改进的地方,可以issues 我!写在之前先上效果图:(1.5版本新增弹幕功能)为什么要用Surface

2017-09-18 16:50:18 12749 5

原创 Android项目从立项到上线——修仙之路

最近在组建项目组从0开始开发项目,从立项到上线,有一些心得,包括项目规范、结构、优化、三方等,与大家分享,一起修仙!接下来我会以自己写的两个项目为例,结合起来分析。代码已经上传github:Material Design风格项目 点击前往 喜欢就给个star^_^UI、Base、网络等封装库项目 点击前往 喜欢也给个star喽先上图来看看吧:项目采用MVP+Retrofit+RxJav

2017-09-06 09:38:52 2872 3

原创 重新认识ThreadLocal

想要比较好地理解 Android 的消息机制,ThreadLocal 是必须要掌握的,这是因为 Looper 的工作原理,就跟 ThreadLocal 有很大的关系,理解 ThreadLocal 的实现方式有助于我们理解 Looper 的工作原理。一、ThreadLoacal是什么ThreadLocal 是一个线程内部的数据存储类,通过它可以在 指定的线程中 存储数据,数据存储以后,只有在指定线程

2017-09-28 13:59:23 227

原创 AS中的minSdkVersion、compileSdkVersion、targetSdkVersion、buildTools及tools关系和区别

参考文章关于compileSdk、minSdk、targetSdk的文章 http://chinagdg.org/2016/01/picking-your-compilesdkversion-minsdkversion-targetsdkversion/关于tools的文章 http://blog.csdn.net/mooreliu/article/details/47167473

2017-09-26 09:14:11 762

原创 Material Design整理(九)——CollapsingToolbarLayout

CollapsingToolbarLayout——折叠式标题栏 使用

2017-09-19 14:57:45 411

原创 Android模块化开发探索

随着业务的不断发展壮大,移动端所承担的功能也越来越重,特别是代码几易其主之后开始变得杂乱无章,牵一发而动全局的事情时常发生。为了应对团队壮大之后的开发模式,我们必须要对业务进行隔离,同时沉淀出通用组件,完善移动开发的基础设施。一、痛点模块化以前,我们主要面临以下几个痛点:业务边界不清晰通用代码与业务代码耦合代码重复、资源重复代码散乱、常亮漫天飞代码臃肿 等 其中业务边界不清晰是最大的

2017-09-18 16:46:52 965

原创 Android轻松实现代码混淆

简介 代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。混淆的目的是为了加大反编译的成本,但是并不能彻底防止反编译。如何开启混淆通常我们需要找到项目路径下app目录下的build.gradle文件,找到minifyEnabled这个配置,然后设置为true即可,如下:release { minifyEnab

2017-09-15 14:14:51 2338 8

原创 Dalvik、ART与JVM之间的关系

Dalvik简介1、Google自己设计的用于Android平台的虚拟机;2、支持已转化为dex格式的java应用程序运行;dex是专为Dalvik设计的一种压缩格式3、允许在有限的内存中同时运行多个虚拟机实例,并未每一个Dalvik应用作为一和独立的Linux进程运行;4、5.0以后,Google直接删除Dalvik,取而代之的是ART。Dalvik与JVM区别1、Dalvik是基于寄存器,JVM

2017-09-13 11:41:52 1197

原创 SurfaceView及TextureView

1、SurfaceView是什么它继承自类View,因此它本质上是一个View。但与普通View不同的是,它有自己的Surface。有自己的Surface,在WMS中有对应的WindowState,在SurfaceFlinger中有Layer。我们知道,一般的Activity包含的多个View会组成View hierachy的树形结构,只有最顶层的DecorView,也就是根结点视图,才是对WMS可

2017-09-07 15:54:52 1245

原创 Material Design整理(八)——TabLayout

github地址 点击打开简介一般我们的app主界面都是界面下方或者上方有指示器,结合ViewPager或者Fragment来实现。而指示器可以是RadioGroup或者是其他简单的View(如TextView),但复杂的业务逻辑需要我们自己控制,还有过度动画也需要自己实现。如今,Android中也有自带这种指示器的控件TabLayout。TabLayout存在于android design库中,它

2017-09-01 17:05:00 426

原创 Material Design整理(七)——Palette调色板

简介Palette的意思是调色板,它的作用是从图像中提取出突出的颜色,这样就可以将提取出来的颜色赋给状态栏、Toolbar、标题栏等,使得整个界面看起来色调统一,UI风格更加美观和融洽。看上方效果图:可以看到,下面的6个条块的颜色是从图片中提取出来的,Palette可以提取的颜色有:VibrantColor(有活力的颜色)LightVibrantColor(有活力的 亮色)DarkVibran

2017-09-01 14:21:23 885

空空如也

空空如也

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

TA关注的人

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