自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(124)
  • 资源 (40)
  • 收藏
  • 关注

原创 图解知识点:leakcanary

leakcanary缺点:就是无法应用于线上1.由于把 heap 内存 dump 到 APP 对应的文件系统中的一个 .hprof 文件中是一个非常耗时的过程,使app长时间无响应2.leakcanary会频繁的触发gc操作,gc过程会STW,容易造成卡顿3.生成的.hprof文件特别大,无法及时发送给服务器分析解决方案:1.不频繁的触发gc,只在activity和fragment的生命周期中增减监听2.给app设置一个内存阀值,当内存到达阀值时,fork出一个子进程,由于子进程..

2022-05-23 21:20:11 2542

原创 图解知识点--http\https

1.TCP,三次握手,四次挥手过程2.SSL层两次非对称+一次对称加密过程

2022-05-22 19:47:01 204

原创 Android 如何实现高效跨进程传递大数据

第一.可以实现进程间通信的方式1.管道,一对一通信,两次拷贝,不满足一对多和效率方面要求2.socket通信,一对多,性能太低,而且不安全3.共享内存,多对多,0拷贝,效率高,但是不安全4.binder,一对多,一次拷贝,效率高,实名安全第二.安卓系统中都用到了哪些进程间通信方式(应该是都用了)1.socket通信,SystemService进程和Zygote进程的通信方式就是scoket,那是因为Zygote进程是先创建的进程,是SystemService进程的父进程,因此只能作为

2022-05-22 17:04:32 2466

原创 java 线程总结以及JUC编程

第一部分,线程知识回顾总结一。为什么要用多线程?第一,从CPU角度,现在CPU都是多核的,如果只用单线程那就会浪费CPU第二,从JVM角度,JVM中内存分为三部分,堆、栈、非堆,而栈空间则是由线程瓜分的,所以如果说我们只用单线程编程,那么就浪费了大量的栈空间内存。二。线程的生命周期:新建--准备---运行---挂起(分为等待唤醒挂起和超时挂起)---死亡三。线程的创建方式:1.继承Thread,重写run方法,由于java是单继承,所以不推荐2.实现Runnable接口,实现

2022-04-19 18:36:33 172

原创 AIDL角度分析binder

AIDL,应该说是所有用跨进程通信的最好选择,但是本身缺点也很大:1.两个应用进程必须要包名一致2.定义完方法后需要重新编译,特别是有parcable类型数据需要传递的时候,需要手动添加包3.自动编译生成的java类复杂看不懂那么为什么会有以上缺点呢?我们可不可以改进呢?答案是肯定的。我们先来看一个最基本的aidl:interface IRootService01 { //这是示例代码,可以注掉 void basicTypes(int anInt, long aLo

2022-04-09 11:21:43 2571

原创 进程间通信之Binder理解之一

这篇文章我觉得写进程间通信,写Binder的介绍,写的非常的好,读了以后对binder有了更深的理解。不过我觉得这篇文章写Binder,写的还是比较虚,都是一些跨进程啊什么的,不是很好理解。于是我根据这篇文章的理解,用App进程、类来模拟进程间通信的过程,自己手写了一个进程间通信。App进程:模拟安卓系统MyBinder类:模拟Binder类Process接口:表示进程ProcessA:A进程ProcessB:B进程SystemServiceManager:模拟系统SystemSe.

2022-04-01 19:24:55 430

原创 安卓程序前后台判断不准问题解决方案

App监听前后台变化是非常常见的一个需求,我们需要在App切到前台或者后台之后,做一些业务逻辑处理,比如提示用户app进入后台,那么如何监听App前后台变化呢?1.context.registerActivityLifecycleCallbacks方式class MyApp extends Application{ private int mTopActivityCount = 0; private void registerActivityLifecycle() { .

2022-03-31 16:41:26 923

原创 Activity页面顶层添加view

目前项目在做IM聊天功能,仿照微信的语音接听页面:这个页面看上去好像用一个activity来实现,但是呢,左上角有个小窗口模式,因此不适合用activity来实现,因此想到了自定义一个view,可以动态添加到任何activity页面中。但是遇到了个问题:根据getWindow().getDecorView() 添加进去的view,无法全屏显示(显示到状态栏和底部虚拟按键部分)所以不符合需求,后来发现popupwindow可以实现这个效果,因此又把popupwindow的源码看了一遍,根据po

2022-03-31 15:34:13 1157

原创 Lifecycle应用

上一篇文章分析了lifecycle的源码,源码真的很枯燥,不过有了上一篇的基础,我们再来分析lifecycle的应用就简单多了。lifecycle应用中最重要的两个类是:LifecycleOwner和LifecycleObserver ,前者是提供lifecycle生命周期的,后者是观察者,我们马上会分析源码,先看应用:自定义一个handler,解决内存泄漏问题:public class LifecycleHandler extends Handler implements Lifecyc...

2022-03-29 19:04:17 3288

原创 Lifecycle 源码分析

lifecycle 生命周期,是什么?为什么要设计这个?如何使用?是什么?生命周期的抽象类为什么要设计?我们都知道,activity和fragment等控件,都是有生命周期,而我们可以在各个生命周期内做相应的操作,比如说oncreate中创建对象,ondestory中销毁对象等。其实这样设计已经非常明确告诉了我们该在哪里做什么事情,但是最大的弊端就是,耦合性太高了,我们封装一些第三控件或者第三方库,会完全和我们的宿主耦合起来,这样就会造成如果使用方没有在相应的生命周期内调用我们的方法,则会出现一些b

2022-03-29 09:50:34 2858

原创 LiveData源码解析

上一篇文章中分析了ViewModel的源码,其中提到了viewmodel要配合着LiveData来一起使用,那么今天来分析一下LiveData的源码,看看怎么用,有什么注意点。第一部分:源码头文件翻译/** * LiveData is a data holder class that can be observed within a given lifecycle. //这是一个可以被lifecycle对象用来观察数据变化的类。 * This means that an {@link .

2022-03-25 14:22:52 2478

原创 JVM学习记录浅析二

上一篇文章主要记录了jvm类的加载机制,其实应该趁热打铁把类的加载机制应用- -TInker源码也一起解析的,由于工作原因,只能过两天再分析记录一下。今天主要来记录一下JVM中另外一个重要的模块,内存模型。linux中一切都是文件,但是我觉得在学习分析JVM中,一切皆是内存比较合适:栈空间:线程私有区域,分为方法栈、本地方法栈、程序计数器三部分堆:线程共有区域内存,所有创建的对象都会在堆中分配内存非堆(元空间):线程共有区域,主要保存解析完的类信息、静态变量、常量池,因此生命周期最...

2022-03-24 16:00:40 122

原创 ViewModel 源码解析

MVVM架构中,会用到ViewModel类,那么这个类原理是什么呢?有什么好处呢?第一部分:源码文档解析/** * ViewModel is a class that is responsible for preparing and managing the data for * an {@link android.app.Activity Activity} or a {@link androidx.fragment.app.Fragment Fragment}. //viewmod

2022-03-22 15:21:47 1267

原创 ButterKnife源码解析之---源码分析

上篇文章中我们看了ButterKnife的源码文档,看到了如何使用,那么这篇文章我们来分析具体原理。还是以activity中使用为例:public class ExampleActivity extends Activity { //给需要初始化的view添加注解,参数为id @BindView(R.id.title) EditText titleView; @BindView(R.id.subtitle) EditTe.

2022-03-19 15:51:53 1309

原创 ButterKnife源码解析之---基础文档

ButterKnife的基本使用请参考官方文档,不做过多介绍。其实第三方库在使用的时候,我们都可以从他的源码文档里,找到使用示例,所以我们先从源码的头文档分析起。我们看看源码文档里都给我们介绍了如何使用呢?ButterKnife类头文档原文如下:/** * Field and method binding for Android views. Use this class to simplify finding views and * attaching listeners by binding

2022-03-19 11:18:23 178

原创 JVM学习记录浅析一

分析类的加载机制前,先来抛出一个单例模式思考:单例模式,最常用的设计模式,线程安全的有五种创建方式:1.饿汉式,由类加载机制保证线程安全,但是可能会浪费资源???2.双重校验懒汉式:双重校验保证线程安全,用则初始化,不用则不初始化3.静态代码块:和懒汉式原理一样,本质也一样4.静态内部类:通过内部类的类加载机制保证线程安全,非要说缺点就是多加载一个类吧5.枚举:也是通过类加载机制保证线程安全,但是他的最大特点就是安全,上面四种方式创建单例模式,但是我们可以通过反射机制来破坏单例模式,

2022-03-17 14:48:16 525

原创 数据结构随笔

常见的数据结构我们都知道有:队列、栈、数组、链表、树(二叉树、红黑树等)、图,那么怎么记会更好理解呢?还是要从特点出发:1.队列:没有固定的实现方式,可以用数组实现,也可以用链表实现,特点就是先进先出。数据有序,但是数据之间可以没有任何关联2.栈:没有固定的实现方式,可以用数组实现,也可以用链表实现,特点就是先进后出,后进先出。数据也是有序的,但是数据之间可以没有任何关联3.数组:一群没有任何关联的数,按照一定的规则放到一起,数据是有序的。特点就是容量固定,根据下角标查找快,增删慢4.链表:

2022-03-12 16:37:16 1182

原创 EventBus源码解析

今天开始拆分EventBus源码,废话少说,五步骤,如何使用,源码解析,学到了什么,有什么不足之处第一部分:如何使用 //第二步:注册 接收类 EventBus.getDefault().register(this); //第三步,发送事件 发送事件 事件参数 EventBus.getDefault().post(new Object()); //第四步,注销注册 EventBus.g

2022-03-12 10:14:41 2637

原创 LruCache源码解析

lrucache,最近最少使用缓存策略,源码其实很简单,没有多少行。下面我们分两个部分来解析:第一部分:如何使用 /** * 存储的key类型 * 存储的value类型 * 设置最大存储容量 * 计算每个存储内容大小 */ LruCache<String, Bitmap> bitmapLruCache=new LruCache<String, Bitmap>(1024*1024){ @Overr

2022-03-10 19:01:31 1671

原创 Handler源码解析及自己写个handler

handler消息机制是安卓各个进程的核心,是程序可以持续运行而不退出的原因所在,但是原理却很简单,我们完全可以自己手写一个。下面我们的思路是,分析子线程中handler用法,分析源码,找出handler源码里的关键类,最后然后手写一个handler。第一部分:使用handler Thread thread=new Thread(new Runnable() { @Override public void run() { ..

2022-02-27 16:27:56 277

原创 HashMap源码解析(前奏)

hashmap源码解析可以说是面试中被问及频率比较高的了,主要还是因为hashmap的设计思路比较好,效率高。我今天不分析hashmap的扩容等内容,只分析hashmap的原理内容,以及手写一个hashmap。hashmap采用的数据结构是数组+链表,数组特点是增删效率低,但是查找(根据下角标查找)效率高,当然如果数有序数组则根据二分查找等算法效率也很高,而链表的特点是,增删效率高,但是查找需要遍历效率低(改为树结构后查找效率也很高了)。所以,我们能不能把二者的各自有点结合一下呢?既有数组的高效查找又有

2022-02-23 10:29:23 347

原创 拆分Okhttp

okhttp可以说是面试中被问到的频率最高的第三方框架了,应该说没有之一吧。那正好趁着找工作,复习拆分一下这个第三方库。第一部分:用到的设计模式1.建造者模式:比如 OkHttpClient、Request。为什么要用建造者模式?建造者模式使用特点就是,如果一个类有多个(三个吧)构造器,并且有些参数是非必填的,那么就适合用建造者模式。刚好这两个类所有的参数都是有默认值得(至少是非必填的);2.静态工厂模式:RequestBody.create();啥也不用说,就是简单。3.责任链模式:啥..

2022-02-19 22:21:55 324 1

原创 记录工作中所有的自定义view

开始记录工作中所有用到的自定义view,以后可以直接使用,节约开发时间。项目地址:自定义view项目1.toggleview自定义开关按钮

2020-01-09 11:54:32 132

原创 php初学笔记一:java角度看php语法

1.php中的注释内容方法同java中一样,单行注释“//”,多行注释"/**   **/"2.变量的作用域:  1)属性的作用范围和java是不同的,如果仅仅是在文件中、类中声名了变量,那么他不一定是属性,作用范围不包括函数内,    函数内如果想要使用,需要将变量升级为属性,使用global关键字,或是使用超全局变量$GLOBALS["属性名"]来操作  2)static关键字,仅可以...

2019-01-31 10:48:08 215 1

原创 洪洋okhttpUtils使用问题记录

1.https如何配置忽略验证证书信息:application 的oncreate方法中添加HttpsUtils.SSLParams sslParams = HttpsUtils.getSslSocketFactory(null, null, null); OkHttpClient okHttpClient = new OkHttpClient.Builder() ...

2018-10-23 15:55:53 1023

原创 随笔记录

1.getwindow().setbackgrounddrawable(),这个方法也是给页面的根view设置的背景,即使我们没有调用setcontentview()这个方法也一样。那么例如app首页我们往往只会在主题中设置背景图片,来提高页面显示速度,此时我们应该这么优化页面:@Override protected void onDestroy() { if (nu...

2018-09-18 14:43:56 270

原创 glide使用bug之加载图片模糊问题

       glide联网加载图片,特别是比较小的图片的时候,会特别模糊、锯齿很严重,最后通过如下方法解决:Glide.with(mContext).load(url) .placeholder(R.drawable.icon_default_circle) .error(R.drawable.icon_default_cir...

2018-08-30 11:42:49 7110 1

原创 再回首沉浸式状态栏以及魅族手机等系统问题解决

        上次写过一篇解决沉浸式状态栏问题的文章,不过当时仅仅是为了解决两个问题,没有过多理解过沉浸式,以至于每次发开需要沉浸式都需要网上搜索半天,然后拷贝代码过来,修改修改就得了,今天正好静下心来好好思考了一下沉浸式。        页面做成沉浸式的思路有两个:       第一.就是直接修改状态栏的颜色,需要什么颜色就将状态栏的颜色改成什么颜色,就这么简单,没了。纯白色沉浸式设置...

2018-08-29 17:34:35 3724

原创 优雅的实现app国际化功能

       最近在做国际化功能,这里讲过程中的技术点记录一下。               第一。如果切换不同语言之后读取不同的values语言内容       1.所有的activity中(一般都是baseactivit中),重写下面的方法/** * 设置修改语言 * * @param newBase */ @Override prote...

2018-05-30 18:01:24 1911

原创 用recyclerview实现FlowLayout效果

       最近一直很忙,稍微闲下来整理一下代码,记录一下知识。我们的app里也有flowlayout这种效果的需求,效果如下:                      我们是本地搜索关键词,需要展示这种效果,第一反应就是网上搜索,果真还真有,就是大神的 https://blog.csdn.net/lmj623565791/article/details/38352503  ,直接copy过来...

2018-05-23 16:42:07 4903 1

原创 Android开发之修改包名

        开发过程中有时候会由于各种原因需要修改包名,网上有很多帖子,很多方法,不过他们都有一个共同的特点就是支持如下包名的修改:com.abc.def.cde修改成com.ccc.ddd.fff等等,他们修改的特点如下:        1.包名的长度不变。例如都是四级修改成四级,那么四级修改成三级怎么办?        2.都没有修改过顶级文件夹名com,如何修成cn?       如果你...

2018-04-18 14:53:44 1354

原创 Android解析html文件的两种方案以及对比

         开发过程中难免会遇到后台给返回的数据时html格式的数据,确实是第一反应就是一脸蒙蔽,给我返回html干甚,不过为了便于部分模块的拓展、修改,还是用html比较好,没办法来吧,解析处理吧。         方案一:TextView来处理html内容 /** * 加载html内容 */ public void loadHtmlText(final ...

2018-04-13 18:13:26 6395

原创 app退到后台再次点击图标重新启动问题解决方案

       最近在使用某app的时候出现了一个小问题,体验不是很好:打开A应用app进入n层页面后,点击home键退到桌面,然后打开其他app,再次按home键退到桌面,此时点击A应用的app图标时,居然打开的是启动页面,而不是上次点击home键的的页面。然后我试了试我们的app,发现不存在这个问题。然后经过分析试验发现了问题:      分析问题:      既然不同的app会出现这个差异,那...

2018-03-26 17:55:52 12573

原创 集成腾讯互动直播之大咖模式采坑记录

        最近在做互动直播,公司最后选择使用腾讯的直播sdk,而且为了增强用户体验,选择了腾讯互动直播的大咖模式。这里不得不吐槽一下,腾讯的sdk文档写的不是烂,而是非常烂,让人看的云里雾里的,结果就是大家都在他的官方问题qq群里提问题,各种问题。当然本人在集成的过程中也在群里问了很多问题,但是结果却是失望,回答的一点也不专业,最后还是跟ios一起讨论,互相参考对方的集成文档,确定的解决方案...

2018-03-13 11:11:09 1263

原创 安卓gradle文件配置学习记录

gradle学习配置问题记录如下:问题1.配置过程中出现如下错误Error:Execution failed for task ':app:mergeDebugResources'.&gt; [string/app_name] C:\Users\Administrator\Desktop\test\csdn1\app\src\main\res\values\strings.xml [string...

2018-02-10 14:17:17 313

原创 Error:Execution failed for task ':app:validateSigningDebug'. Keystore file not found for signing。。。

 今天调试应用出现了一个错误如下:Error:Execution failed for task ':app:validateSigningDebug'. &gt; Keystore file C:\Users\Administrator\AndroidStudioProjects\cloudclass\cloudclass.jks not found for signing config...

2018-02-08 11:58:09 1456

原创 7.0系统、华为手机等沉浸式状态栏问题

沉浸式状态栏如何实现,这里不过多介绍,网上代码很多,自行搜索。这里记录一下,开发过程中的两个问题。 1.安卓系统7.0时,状态栏为透明的,有一层朦层问题,如下图(效果是这样): 解决方法:if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = activity.getWind

2018-01-18 11:00:37 6558

原创 RecyclerView的优化

自从recyclerview出来以后我们就基本上不用listview,但是recy有些地方并不是很完美,需要我们去优化,解决。     1.给item设置点击事件、长按事件     通常情况下我们设置点击事件或者长按事件都是通过下面的方式设置: @Override public void onBindViewHolder(XXViewHolder holder, int

2018-01-17 14:42:13 6653 4

原创 builder设计模式学习及应用dialogfragment链式调用封装

刚接手了一个新项目,需要使用的弹框各种样式,不好弄成一个统一的样式来进行使用,很是费劲,所以就封装了一个统一的fragmentdialog,方便使用,废话不多说,上代码!!!!先看如何使用: CustomDialogFragment.Builder.getInstance() .setResId(R.layout.layout_on

2017-12-06 11:45:15 555

原创 android中gralde的一些使用总结

一.需求就是如何实现线上环境和开发环境切换不同的接口api?再就是同一台手机如何可以安装开发包和正式包两个包呢?android { compileSdkVersion 25 buildToolsVersion "25.0.3" defaultConfig { applicationId "com.example.servicedemo"

2017-10-23 10:43:54 389

Android 读取手机文件夹向指定文件夹下存放数据demo,版本升级

Android 读取手机文件夹向,指定文件夹下存放数据demo,里面还有应用版本升级的功能

2016-10-10

android 解压zip文件(转载)

http://blog.csdn.net/djun100/article/details/18007099 具体使用方法,参见大神scdn文章

2016-09-29

glide使用demo

此demo为如何使用glide加载图片的一个demo,谷歌推荐使用加载图片的。

2016-08-30

viewpager无限循环

一个viewpager无限循环的demo,自己留着以后用

2016-08-16

android视频加密播放

根据项目要求,需要让我们的视频不能被其他app打开,使用这个方法解决了,配合服务器使用就可以实现视频的自定义加密解密播放

2016-08-16

iconFont 实现selector的Demo

开发过程中使用阿里巴巴的iconfont来减小apk大小,这是做的一个Demo,里面可以用来实现selector的状态改变,非常好用的,希望对感兴趣的朋友有帮助。

2016-07-25

android webp 格式图片使用Demo

这是一个androidstudio可以运行的webp格式图片使用方法的demo

2016-07-22

复习之textview各个属性(转载的)

转载的textview各个属性研究的一个demo,觉得挺好的,上传上来有用时再细看

2016-06-13

viewpager添加圆点导引

此demo为在github上下载的一个demo后进行的二次修改开发,不仅可以任意添加viewpager下面的圆点导引,而且还支持无限循环的viewpager添加导引,希望对有需要的人有所帮助。

2016-05-28

listview 最后一个item向上推入动画

转载的一个Demo,listview最后一个item进入的时候具有向上推入的效果

2016-05-27

listview添加headview的Demo

自己写的一个listview添加headview的Demo

2016-05-27

listview的item各种动画Demo

listview item 动画 飞入 渐变 推入等效果(转载的)

2016-05-27

org.apache.http.legacy

org.apache.http.legacy jar包,又需要的可以下载

2016-05-17

联系人分级分页显示demo

仿钉钉的部门联系人分部门展示demo。

2016-05-06

仿qq侧滑删除

这是一个高仿qq的侧滑删除,也可以自己定义其他的比如说分享啊等等,可以根据自己写需要添加侧滑功能。

2016-03-24

任意位置任意事件的监听

模仿控件的点击事件来实现任意位置任意行为的监控,特别是对于那种聊天消息提醒什么需要实时监控的很好用!

2016-03-22

popupWindow实现对服务的评价

这是一个类似于美团啊大众点评啊等等服务评价的一个demo,此评价是在一个popupwindow上来实现的,屏幕适配也都已经做好,只需要根据自己的需要修改一下参数就可以使用了。

2016-03-19

解决三星手机照相中的BUG

调用手机相机拍照过程中三星手机会有很多的bug,这个demo很好的解决了!!

2016-03-09

安卓视频播放悬浮全屏竖屏切换技术

可以实现任何地方的视频悬浮播放技术,特别是像item中有视频播放的情况,切换全屏竖屏,视频不会重新加载

2016-01-20

listview中item布局中播放视频

android中listview的item中播放视频,可是实现悬浮技术,同步播放,切换全屏

2016-01-20

安卓跨进程高效通信demo

使用binder和共享内存两种方式显示的安卓跨进程高效通信demo

2022-05-22

模拟binder通信的demo

模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟binder通信的demo模拟bin

2022-04-01

netmonitor.zip

自己写的一个工具依赖库,用来监听网络状态变化,自己写的一个工具依赖库,用来监听网络状态变化,自己写的一个工具依赖库,用来监听网络状态变化

2019-08-15

沉浸式demo.zip

一个沉浸式状态栏的demo,基本上可以适配90%的手机问题,并非原创,而是无意间看到的第三方框架里提取出来的模块

2019-07-19

安卓国际化demo

国际化demo国际化demo国际化demo国际化demo国际化demo国际化demo

2018-05-30

recyclerview实现flowlayout效果

recyclerview实现flowlayout效果的demo,注意点都在demo里注明了

2018-05-23

一个超级简单的日期选择器

安卓原生自定义日期选择器,安卓原生自定义日期选择器安卓原生自定义日期选择器,安卓原生自定义日期选择器,安卓原生自定义日期选择器

2018-01-23

recyclerview优化以及二级菜单展开

recyclerview优化以及二级菜单展开,recyclerview优化以及二级菜单展开,recyclerview优化以及二级菜单展开

2018-01-17

设计模式demo

设计模式总结设计模式总结设计模式总结设计模式总结设计模式总结设计模式总结设计模式总结设计模式总结

2017-11-01

另一种屏幕适配和跨进程通信学习

学习记录,仅供自己以后学习参考!学习记录,仅供自己以后学习参考!学习记录,仅供自己以后学习参考!学习记录,仅供自己以后学习参考

2017-10-11

解决app崩溃问题

根据GitHub上的例子结合实际应用写了一个解决app在运行中crash的问题

2017-09-28

基于bugly的热更新demo

自己学习制作的,仅供自己学习参考,自己学习制作的,仅供自己学习参考,自己学习制作的,仅供自己学习参考,

2017-09-28

三行代码搞定友盟统计

说是三行代码,其实是三个步骤,非常简单

2017-08-21

一个主流框架

自己搭建的一个主流app框架,以后开发直接来用,不希望公开(很没水平)所以分设置高点

2016-11-29

dialogfragment使用总结

此demo里含有所有dialogfragment的使用demo

2016-11-25

android6.0 动态申请权限问题总结demo

自己总结的动态申请权限的demo,以及封装的一个统一的activity,以后直接复制使用

2016-11-24

属性动画demo

学习属性动画记录,demo

2016-11-05

相机开发,混淆打包demo

这是一个surfaceview,textureview,glsurfaceview制作的一个自定义相机demo,camrea以及camrea2的使用,最后加入了一些代码混淆的内容

2016-11-04

底部导航栏框架(谷歌自带控件)

研究bottomnaviagtionbar控件,制作底部导航栏,app搭框架时用可以,很好用的

2016-10-27

沉浸式状态栏demo

自己按照网上的例子归纳的沉浸式状态栏,其中fragment的实现在另一个demo中,下载的,以后用的时候直接用

2016-10-27

空空如也

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

TA关注的人

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