自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android客户端和服务端如何使用Token和Session

对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不知道为什么要用他?更不知道其原理,今天我就带大家一起分析分析这东西。我们先解释一下他的含义:1、Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。2、Toke...

2019-03-13 16:22:05 369

转载 面试题-史上最全人事面试宝典

https://www.jianshu.com/p/d61b553ff8c9

2019-03-13 16:03:09 238

原创 Service不死之身

1. 在onStartCommand方法中将flag设置为START_STICKY;return Service.START_STICKY;2. 在xml中设置了android:priority <!--设置服务的优先级为MAX_VALUE--> <service android:name=".MyService" android:priority=...

2019-03-13 16:00:24 358 1

原创 onCreate源码分析

Activity扮演了一个界面展示的角色,堪称四大组件之首,onCreate是Activity的执行入口,都不知道入口到底干了嘛,还学什么android,所以本文会从源码的角度对其进行分析。熟悉源码的会发现,真正启动Activity的实现都在ActivityThread,前面的调用过程略过ActivityThread的方法performLaunchActivity中调用了Instrumenta...

2019-03-13 15:58:32 244

原创 App优雅退出

1. RxBus优雅式首先,在基类BaseActivity里,注册RxBus监听:public class BaseActivity3 extends AppCompatActivity { Subscription mSubscription; @Override public void onCreate(@Nullable Bundle savedInstance...

2019-03-13 15:54:57 183

转载 自定义view大全

http://www.gcssloop.com/customview/CustomViewIndex/

2019-03-12 19:55:56 161

原创 Android事件分发机制

在android开发中会经常遇到滑动冲突(比如ScrollView或是SliddingMenu与ListView的嵌套)的问题,需要我们深入的了解android事件响应机制才能解决,事件响应机制已经是android开发者必不可少的知识。1.涉及到事件响应的常用方法构成用户在手指与屏幕接触过程中通过MotionEvent对象产生一系列事件,它有四种状态:MotionEvent.ACTI...

2019-03-12 19:52:46 180

原创 自定义ViewGroup入门

对自定义view还不是很了解的码友可以先看自定义View入门这篇文章,本文主要对自定义ViewGroup的过程的梳理,废话不多说。1.View 绘制流程ViewGroup也是继承于View,下面看看绘制过程中依次会调用哪些函数。说明:measure()和onMeasure()在View.Java源码中:public final void measure(int widthMe...

2019-03-12 19:49:21 304

转载 Android自定义view详解

https://mp.weixin.qq.com/s?__biz=MzI0MjE3OTYwMg==&mid=2649547668&idx=1&sn=b2667c46188c6674c90aa72c2fba4719&scene=21#wechat_redirect

2019-03-12 19:45:40 142

原创 自定义View入门

自定义View入门在Android应用开发过程中,固定的一些控件和属性可能满足不了开发的需求,所以在一些特殊情况下,我们需要自定义控件与属性。一、实现步骤继承View类或其子类复写view中的一些函数为自定义View类增加属性(两种方式)绘制控件(导入布局)响应用户事件定义回调函数(根据自己需求来选择)二、哪些方法需要被重写onDraw()...

2019-03-12 19:42:58 268

转载 gradle 详解——你真的了解Gradle吗

本文为博主原创文章,转载请注明出处http://blog.csdn.net/u013132758。 https://blog.csdn.net/u013132758/article/details/52355915

2019-03-12 19:31:06 131

转载 Android 三大图片缓存原理、特性对比

https://mp.weixin.qq.com/s?__biz=MzI0MjE3OTYwMg==&mid=2649547344&idx=2&sn=e3fa99b52055a37202634fe61a62d439&scene=21#wechat_redirect

2019-03-12 19:25:34 120

转载 LeakCanary的工作过程以及原理

LeakCanary的工作过程以及原理本文是转载的! 原文地址:http://blog.csdn.net/zivensonice/article/details/51639763先说一下,这篇文章,是博主看到的少有的好文,感觉写的非常通俗易通。曾经检测内存泄露的方式让我们来看看在没有LeakCanary之前,我们怎么来检测内存泄露Bug收集通过Bugly、友盟这样的统计平台,统...

2019-03-12 19:22:58 821

原创 Android性能优化

Android性能优化合理管理内存节制的使用Service如果应用程序需要使用Service来执行后台任务的话,只有当任务正在执行的时候才应该让Service运行起来。当启动一个Service时,系统会倾向于将这个Service所依赖的进程进行保留,系统可以在LRUcache当中缓存的进程数量也会减少,导致切换程序的时候耗费更多性能。我们可以使用IntentService,当后台任务执行结束...

2019-03-12 19:21:24 152 1

原创 Android 内存泄漏总结

Android 内存泄漏总结内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收。最近自己阅读了大量相关的文档资料,打算做个 总结 沉淀下来跟大家一起分享和学习,也给自己一个警示,以后 coding 时怎么避免这些情况,提高应用的体验和质量。我会从...

2019-03-12 19:17:08 165

原创 Android导入项目一直在Building的解决方案

Android导入项目一直在Building的解决方案这种问题的发生的场景,一般是因为项目中的gradle的版本,或者sdk的版本我们本地环境中没有,所以需要先下载,然后才能导入,但是下载起来又特别的慢,所以我们需要修改一下待导入项目中用的配置。我们可以找一个,我们可以运行的项目,然后将这些配置替换掉。1.修改待倒入项目的gradle版本找到 项目名称/gradle/wrapper/gra...

2019-03-12 19:00:27 257

原创 自定义RadioGroup

自定义RadioGroup在Android系统中,自带的RadioGroup只能指定横向和纵向两种布局,所以有的时候我们需要自定义RadioGroup。首先分析一下,就是在系统自带的RadioGroup中,如果我们嵌套了,LinearLayout的话,就会失效,因为系统的RadioGroup没有考虑到这种情况,所以我们需要自定义一个Group,初步的打算是继承自LinearLayout。...

2019-03-12 18:59:27 652

原创 Android项目总结

项目总结最近在公司做了一个非常轻量级别的app,不过里面还是有一些知识点,是查了资料之后才会的,现在app基本做完了,整体总结一下。1.获取当前app的一些基础信息:public static final boolean DEBUG = BuildConfig.DEBUG;//以下是能获取到的信息public static final boolean DEBUG = Boolean.p...

2019-03-12 18:58:06 1129

原创 深入了解MV**模式

深入了解MV**模式前言:做客户端开发、前端开发,大致都应该听说过这么几个名词MVC、MVP、MVVM,这些架构的思想大多是为了解决界面应用程序复杂的逻辑问题。同时这些框架的核心目的在于,职责分离,不同的层次要做不同的事情。无论是哪种MV**系列,都涉及到了Model和View,如果单纯的只有Model和View,他们是没有办法一起协同工作的,所以就有了各种MV…的设计模式MVXX模式:...

2019-03-12 18:55:03 318

原创 Android中的动画

Android动画AlphaAnimationRelativeLayout rl_splash = (RelativeLayout) findViewById(R.id.rl_splash);//播放动画效果AlphaAnimation animation = new AlphaAnimation(1.0f, 0.0f);//设置Alpha动画的持续时间animation.setD...

2019-03-12 18:53:35 169

转载 Android 触控事件解析 - Mastering The Android Touch System 笔记

https://www.jianshu.com/p/c65da5e81afd

2019-03-12 18:50:39 96

转载 用SpannableString打造绚丽多彩的文本显示效果

https://www.jianshu.com/p/84067ad289d2

2019-03-12 18:45:30 75

原创 Android获取SHA1

Android获取SHA1在Android Studio中打开Terminal或者进入控制台cd到jdk的bin目录下输入命令 keytool -list -keystore /Users/mac/WorkSpace/linGitHub/Daily/key/fuyizhulao.jks上面这个命令,大家需要选择自己的jks文件输入密码然后就可以看到自己的证书指纹(SHA1)了效果...

2019-03-12 18:43:58 1424

原创 RecyclerView的简介

RecyclerView一、简介这个是谷歌官方出的控件,使我们可以非常简单的做出列表装的一个控件,当然recyclerview的功能不止这些,它还可以做出瀑布流的效果,这是一个非常强大的控件,内部自带viewholder可以使我们非常简单的完成许多操作,正在一步一步取代listview这个控件,当然它也有一些小的缺点,那就是谷歌官方并没有直接给我写出它的点击事件的接口,但是这并难不倒我们,我们...

2019-03-12 18:41:24 392

原创 Android跟随手指移动的view

实现一个跟随手指移动的view其实是特别容易实现的,不过有的时候还是挺有用的,最近做的视频互动软件就有这样的需求,大概几十行代码就可以搞定,然后记录一下吧。实现的主要思想,就是利用onTouchListener,然后判断出手指按下的点,同时监听移动的事件,然后稍微计算一下就可以求出来view最终应该呈现的位置了,然后通过改变LayoutParams的值就可以是实现view的跟随手指拖拽的效果...

2019-03-12 18:39:51 605

原创 Android数据存储的五种方式.

1、概述Android提供了5种方式来让用户保存持久化应用程序数据。根据自己的需求来做选择,比如数据是否是应用程序私有的,是否能被其他程序访问,需要多少数据存储空间等,分别是:   ① 使用SharedPreferences存储数据② 文件存储数据③  SQLite数据库存储数据④ 使用ContentProvider存储数据⑤ 网络存储数据Android提供了一种方式来暴露你的数...

2019-03-12 17:26:01 486

原创 图片缓存原理

移动开发本质上就是手机和服务器之间进行通信,需要从服务端获取数据。反复通过网络获取数据是比较耗时的,特别是访问比较多的时候,会极大影响了性能,Android中可通过缓存机制来减少频繁的网络操作,减少流量、提升性能。实现原理把不需要实时更新的数据缓存下来,通过时间或者其他因素 来判别是读缓存还是网络请求,这样可以缓解服务器压力,一定程度上提高应用响应速度,并且支持离线阅读。Bitmap的缓...

2019-03-12 17:06:09 853

原创 Android中相机与相册的详细使用

目前主流app都具有上传头像啊,上传图片的功能,看起来好简单的需求,但是其实这里面有一点点不同的地方。先说一下我的思路,因为开发周期的问题,并没有打算自定义相机与图片查询工具,打算采用系统相机和图片查看工具,最开始我打算调用系统的剪裁并且取得的效果还是不错的,因为我最开始做的是系统头像上传的这个功能,后来我采用同样的方法做了上传商品图片的功能,但是这个时候就暴露了之前的隐患。我先说一下,安卓系统...

2019-03-12 16:49:42 263

原创 Android-SQLite的基本使用

概述Android 也提供了几种方法用来保存数据,使得这些数据即使在程序结束以后依然不会丢失。这些方法有:文本文件:可以保存在应用程序自己的目录下,安装的每个app都会在/data/data/目录下创建个文件夹,名字和应用程序中AndroidManifest.xml文件中的package一样。SDcard保存:Preferences保存:这也是一种经常使用的数据存储方法,因为它...

2019-03-12 16:45:26 120

原创 Handler,Looper,MessageQueue关系

1、Handler的由来当程序第一次启动的时候,Android会同时启动一条主线程( Main Thread)来负责处理与UI相关的事件,我们叫做UI线程。Android的UI操作并不是线程安全的(出于性能优化考虑),意味着如果多个线程并发操作UI线程,可能导致线程安全问题。为了解决Android应用多线程问题—Android平台只允许UI线程修改Activity里的UI组建,就会导致新启动...

2019-03-12 16:16:54 157

原创 Android异步任务机制之AsnyncTask

在Android中实现异步任务机制有两种方式,Handler和AsyncTask。本篇就说说AsyncTask的异步实现。1、什么时候使用 AsnyncTask在上一篇文章已经说了,主线程主要负责控制UI页面的显示、更新、交互等。 为了有更好的用户体验,UI线程中的操作要求越短越好。我们把耗时的操作(例如网络请求、数据库操作、复杂计算)放到单独的子线程中操作,以避免主线程的阻塞。但是...

2019-03-12 16:06:57 229

原创 BroadcastReceiver

BroadcastReceiver的定义广播是一种广泛运用的在应用程序之间传输信息的机制,主要用来监听系统或者应用发出的广播信息,然后根据广播信息作为相应的逻辑处理,也可以用来传输少量、频率低的数据。在实现开机启动服务和网络状态改变、电量变化、短信和来电时通过接收系统的广播让应用程序作出相应的处理。BroadcastReceiver 自身并不实现图形用户界面,但是当它收到某个通知后, Bro...

2019-03-12 16:02:49 160

原创 ContentProvider

1.ContentProvider是什么?ContentProvider(内容提供者)是Android的四大组件之一,管理android以结构化方式存放的数据,以相对安全的方式封装数据(表)并且提供简易的处理机制和统一的访问接口供其他程序调用。     Android的数据存储方式总共有五种,分别是:Shared Preferences、网络存储、文件存储、外储存储、SQLite。但一般这些...

2019-03-12 15:42:43 279

原创 IntentService

IntentService定义IntentService继承与Service,用来处理异步请求。客户端可以通过startService(Intent)方法传递请求给IntentService。IntentService在onCreate()函数中通过HandlerThread单独开启一个线程来依次处理所有Intent请求对象所对应的任务。     这样以免事务处理阻塞主线程(ANR)。执行完...

2019-03-12 15:32:24 71

原创 Service详细解析

什么是服务?Service是一个应用程序组件,它能够在后台执行一些耗时较长的操作,并且不提供用户界面。服务能被其它应用程序的组件启动,即使用户切换到另外的应用时还能保持后台运行。此外,应用程序组件还能与服务绑定,并与服务进行交互,甚至能进行进程间通信(IPC)。 比如,服务可以处理网络传输、音乐播放、执行文件I/O、或者与content provider进行交互,所有这些都是后台进行的。Ser...

2019-03-12 15:02:27 612

原创 Activity是什么?

我们都知道android中有四大组件(Activity 活动,Service 服务,Content Provider 内容提供者,BroadcastReceiver 广播接收器),Activity是我们用的最多也是最基本的组件,因为应用的所有操作都与用户相关,Activity 提供窗口来和用户进行交互。官方文档这么说:An activity is a single, focused thin...

2019-03-12 14:51:29 15886 1

转载 双击back返回键退出app功能的实现方式

https://blog.csdn.net/greathfs/article/details/52893800

2019-03-12 14:49:57 354

原创 Android中的冷门知识汇总

四大组件相关:1.启动一个Activity,在应用进程至少需要两个Binder线程。2.启动一个launchMode为singleTask的Activity,它并不一定会运行在新的Activity栈中。3.两个不同应用的Activity,可以运行在同一个Activity栈中。4.同一个应用进程中的所有Activity,共享一个WindowSession。5.弹出一个AlertDialog...

2019-03-12 14:38:27 414

翻译 README文档的规范写法

看过很多开源库,发现有些库的文档写的一团糟,有的甚至就是一个标题,让你自己下载之后运行,自己摸索,看的很头疼。而那些使用量大的库的文档写的很标准,很详细,看的很舒服。README文档写的好的话能减少很多使用成本,能帮助这个库让更多人了解,更多的人用,可以说好的文档就是一个门面。有好的 README 文档的项目不一定是一个好开源项目,但一个好开源项目一定有一个好的 README。下面就简单的总...

2019-03-11 16:08:23 9153

转载 Android开发遇到的坑汇总

1、Toolbar去除标题与返回键间的间距给toolbar加上以下属性:app:navigationIcon="@drawable/icon_back" //这是设置返回键图标,这是必不可少的。 app:contentInsetStartWithNavigation="0dp"为了保险起见,建议加上这两个属性:app:contentInsetLeft="0dp"app:content...

2019-03-08 15:52:50 436

空空如也

空空如也

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

TA关注的人

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