- 博客(74)
- 资源 (3)
- 问答 (2)
- 收藏
- 关注
原创 约束布局ConstraintLayout总结
背景ConstraintLayout是目前android官方比较推荐的布局方式,Android进行布局时减少对布局层次的嵌套,进而提高app的性能。约束顾名思义,就是将该view约束到指定的view上(包括外层的ConstraintLayout和其他的布局),实现位置的定位。因此有时候可能需要更多的定位去约束控件的位置,强大的功能,灵活的使用给上手带来了一点点的难度,很多开发者望而生畏。其实...
2020-03-19 16:17:44
667
原创 腾讯x5 webview第一次打开卡顿官方优化方案
1. 多进程方案a) 设置开启优化方案// 在调用TBS初始化、创建WebView之前进行如下配置,以开启优化方案application中加入HashMap<String, Object> map = new HashMap<String, Object>();map.put(TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLAS...
2019-12-13 15:46:08
2279
3
原创 android webview加载闪动问题
webview是一个强大的控件,但是总是有这样那样的坑。闪动的原因,可能加载比较慢,然后渲染慢,播放视频等等,,总之,你性能不太好,然后你开启了硬件加速硬件加速的主要原理,就是通过底层软件代码,将CPU不擅长的图形计算转换成GPU专用指令,由GPU完成。但是坑爹的是,开启硬件加速后,加载会闪动,如果不是特别需要的可以关闭硬件加速。整个app配置 <application ...
2019-12-12 17:32:19
5515
1
原创 android夜间模式Support Library
介绍Android官方在Support Library 23.2.0中已经加入了夜间主题。也就是只需要通过更换主题便可实现日间模式和夜间模式的切换。坑很多,看完再想想符合不符合自己需求。一、实现夜间模式需要的配置1、引入support包 implementation 'com.android.support:appcompat-v7:28.0.0'2、让我们项目的主题继承夜间模式主题...
2019-12-06 12:18:32
529
原创 glide设置成圆角图片 以及解决刷新图片闪烁的问题
在项目中,我们经常会用到圆角图片,强大的glide能很简单的实现通过自定义BitmapTransformation就能实现。~~直接上代码:~~public class GlideRoundTransform extends BitmapTransformation { private final float radius; private final ...
2019-11-14 11:13:00
2747
1
原创 几行代码实现动态修改Tablayout标题
背景很多时候,我们需要在tablayout的标题显示fragment有多少条数据,加个角标数量也有一些其他情况需要请求到数据再动态修改tab的标题。如果在activity请求的可以直接请求到设置上去,但是必须请求到数据再去初始化tablayout+viewpager这些,用户体验真心会很差。如果在fragment中请求角标数据,可以activity和fragment通信后,设置。show...
2019-09-07 14:28:28
3331
原创 【转载】最好用的通用adapter——BaseQuickAdpater详解
序言recyclerview是Android 5.0推出的,是support-v7包中的新组件,它的出现就是为了代替ListView、GridView。 recyclerview是一个很强大的,高度解耦的控件。然而我们使用时候却很麻烦,基础的adapter要继承大量的方法进行实现,这给我们使用 带来了大量的困扰,我们需要写大量重复的代码,viewholer等等,我们要自定义点击事件,ite...
2019-07-05 20:01:13
28449
10
原创 android多渠道打包:umeng+美团walle+腾讯乐固
概述在android开发时,我们需要加固以确保安全,需要多渠道进行精准客户分析,并且需要一个平台进行统计分析。我现在常用的就是,腾讯乐固进行加固,美团进行多渠道打包,然后用友盟进行渠道分析。方案我采取的方案是1、配置walle2、先打包出来一个apk3、乐固加固4、签名5、walle多渠道6、多渠道配置到umeng分析步骤这样的主要原因是因为加固会把渠道包给去掉。walle...
2019-06-29 19:20:30
681
原创 2分钟学会android通过浏览器打开app
HTML的页面,添加一个a标签,跳到app用。<a href="[scheme]://[host]/[path]?[query]">启动应用程序</a> 比如:<a href="myapp://360.app/main?id=1">启动应用程序</a>scheme:判别启动的App。host: 适当记述path: 用来区分哪个界面。qu...
2019-06-26 18:37:02
7864
原创 android之activity全面解析
概述Activity是Android提供给开发者的一个组件,主要用于前台界面的展示和交互。在android中,使用频率最高,Android应用程序通常由多个彼此松散绑定的Activity组成,几乎所有Activity都与用户交互。这里有两个几乎所有Activity子类都会实现的方法:onCreate(Bundle)是你初始化Activity的地方。最重要的,这里你经常会调用setConte...
2019-06-26 17:32:50
735
原创 写在四大组件之前------androidframework框架分析简略分析和系统启动流程
Zygote和SystemServerAndroid系统是基于Linux内核的,而在Linux系统中,所有的进程都是init进程的子孙进程,也就是说,所有的进程都是直接或者间接地由init进程fork出来的。Zygote进程也不例外,它是在系统启动的过程,由init进程创建的。在系统启动脚本system/core/rootdir/init.rc文件中,我们可以看到启动Zygote进程的脚本命令...
2019-06-13 16:57:43
309
原创 android常用布局详解
view和布局在一个Android应用程序中,用户界面通过View和ViewGroup对象构建。Android中有很多种View和ViewGroup,他们都继承自View类。View对象是Android平台上表示用户界面的基本单元。View的布局显示方式直接影响用户界面,View的布局方式是指一组View元素如何布局,准确的说是一个ViewGroup中包含的一些View怎么样布局。ViewGr...
2019-06-11 19:17:10
2110
原创 android系统架构的前世今生
android和linux内核Android是基于Linux内核的操作系统,但是它与Linux之间还是有很大的差别,比如Android在Linux内核的基础上添加了自己所特有的驱动程序Android为什么会选择Linux?1、强大的内存管理和进程管理方案2、基于权限的安全模式3、支持共享库4、经过认证的驱动模型5、Linux本身就是开源项目Android对linux系统的改动主要...
2019-06-03 16:09:14
745
1
原创 MVVM的理解和使用,以及livedata,viewmoel的介绍
因为不太喜欢mvp框架的大量冗余代码,所以呢,很长时间用着被大家诟病的mvc结构。去年呢,kotlin大量的流行了,趁着换kotlin的机会,也换上了mvvm.一、mvvm的简单介绍MVVM是增强关注点分离的体系结构模式之一,它允许将用户界面逻辑从业务(或者后端)逻辑中分离开来,他的目标(和MVC等其他目标)是为了实现”保持UI代码简单化,不涉及更多的业务逻辑,以便于开发者更好的控制和管理”。...
2019-05-27 19:13:49
694
1
转载 必知必会 | Android 性能优化的方面方面都在这儿
转载于hongyang大佬的微信公众号必知必会 | Android 性能优化的方面方面都在这儿大家在工作中或多或少都会拿自家的应用和竞品app做比对,不可避免的需要做一些app性能优化的活。很多时候可能是策略上的调整,不过还是有非常多的通用的方式。一般情况下,我们谈性能优化基本上会从以下几个方面:App启动速度优化UI流畅度优化内存优化apk瘦身电量优化还有些网络速...
2018-07-20 10:12:59
344
原创 android studio签名打包详解
Debug 和Release 的区别Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。 Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 本质区别实际上,Debug 和 Release 并没有本质的界限,他们只是一组编译选项的集合,编译器只是按照预定的选项行动。事实上,我...
2018-05-07 17:49:07
5074
原创 webview最全面总结(二)全面介绍webview用法
简单介绍为了方便开发者实现在app内展示网页并与网页交互的需求,Android SDK提供了WebView组件 它有如下功能:显示和渲染Web页面 直接使用html文件(网络上或本地assets中)作布局 可和JavaScript交互调用WebView控件功能强大,除了具有一般View的属性和设置外,还可以对url请求、页面加载、渲染、页面交互进行强大的处理。基本使用...
2018-03-16 18:17:02
1844
原创 (二)http协议了解
HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。RFC 1945定义了HTTP/1.0版本,RFC 2616定义了HTTP/1.1版本。HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输
2017-10-09 17:54:47
720
原创 android适配autolayout的使用心得体会
平时我们拿到设计图的时候是px,而我们android的尺寸单位,却是sp,dp之类的。传统的适配方案要建一大堆文件夹进行适配,百分比布局还要计算百分比。我们希望:拿到设计图,meta信息中填入设计图的尺寸,然后不需要额外计算,布局直接抄设计图上的尺寸,不产生任何多余的资源文件,完成各种分辨率的适配!鸿洋大大的autolayout基本完成了这一项工作。用法1、将autolayout引入dependen
2017-09-29 15:08:17
2566
1
原创 android验证验证码界面ui实现倒计时实现
因为某些原因(你懂得),要求app里面加入绑定手机号功能,因为是阅读类app,不能因为不绑定手机号就不让人阅读,所以,决定在评论的地方加入验证功能,没有绑定手机的不能发表评论。 本文采取弹出PopupWindow的方式,提醒用户进行绑定。 先看图看图画验证码:public class Code { private static final char[] CHARS = {
2017-09-22 19:59:13
1052
原创 android获取手机验证码界面以及倒计时实现demo
因为网信办要求实名制,然后领导要求app里面加入绑定手机号功能,因为是阅读类app,不能因为不绑定手机号就不让人阅读,所以,决定在评论的地方加入验证功能,没有绑定手机的不能发表评论。 本文采取弹出PopupWindow的方式,提醒用户进行绑定。 没有图的都是耍流氓哈哈。画验证码:public class Code { private static final char[] C
2017-09-22 19:39:47
1018
原创 webview最全面详解(一)了解官方文档
简单介绍WebView是手机中内置了一款高性能 webkit 内核浏览器,在 SDK 中封装的一个组件。没有提供地址栏和导航栏,WebView只是单纯的展示一个网页界面。在开发中经常都会用到。显示和渲染Web页面 直接使用html文件(网络上或本地assets中)作布局 可和JavaScript交互调用 WebView控件功能强大,除了具有一般View的属性和设置外,还可以对url请...
2017-09-20 14:28:03
13461
原创 SharePreferences保存数据(附带工具类)
在我们开发应用需要保存一些配置参数,对于Android应用来说,我们最适合采用SharedPreferences保存数据,它是一个轻量级的存储类,特别适合用于保存软件配置参数。**使用SharePreferences保存数据** 使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data//shared_prefs目录下。例如: Share
2017-09-05 12:02:20
561
原创 Android工具类之创建快捷方式的方法详解
一、Android在桌面上生成快捷方式有两种情况,一种是直接在桌面直接生成;一种是长按桌面,在弹出的快捷菜单中生成。 第一个是通过广播(Broadcast)的形式向Luncher发送请求生成快捷方式的。在网上找到关于这方面的注册信息。 <!-- Code highlighting produced by Actipro CodeHighlighter (freeware)
2017-09-05 11:34:40
637
原创 umeng(友盟)实现第三方登录和分享详解之分享
一、介绍在上文中umeng(友盟)实现第三方登录和分享详解之登录详解 已经很详细详尽的讲解了umeng分享和登录的配置,还有登录的具体操作。因为篇幅太长,所以分享想另外写一篇。umeng分享和登录配置相同,所以不再赘述上述的配置,大概流程如下:1、各大平台申请appkey2、copy你所需要的平台的jar包和资源文件(图片布局等)。3、Android Manifest XML中配置权限和申明各个
2017-08-25 10:15:08
5406
原创 umeng(友盟)实现第三方登录和分享详解之登录详解
一、简单介绍因为一个平台一个平台进行弄太麻烦,也不够统一,所以领导选择了umeng(我的内心是拒绝的),umeng的文档写的便于查找,但是比较分散,对于比较熟悉的很好用,没接触过umeng的肯定一脸懵逼,比如我,所以,我整理一篇,以后也好用到。 本文以6.4.5版本更新。 二、申请appkey如果你已经申请了,请跳过1-6看下面的。 大部分平台进行分享、登录操作需要(zhuangbi)在第三方
2017-08-24 20:25:31
18381
1
原创 android服务保活
Android5.0 以后系统对 Native 进程等加强了管理,Native 拉活方式失效。系统在 Android5.0 以上版本提供了 JobScheduler 接口,系统会定时调用该进程以使应用进行一些逻辑操作。方案适用范围该方案主要适用于 Android5.0 以上版本手机。该方案在 Android5.0 以上版本中不受 forcestop 影响,被强制停止的应用依然可以被拉活,在 Andr
2017-08-22 12:01:12
476
原创 解决coordinatorlayout嵌套webView遇到的问题
一、介绍 在符合material desin设计中,我们的内容详情页通常会需要webview实现NestedScrollingChild那样的功能,原生webview不支持,但是嵌套在NestedScrollView里面,我们加载网页内部的很多js功能都无法实现了,只能通过自定义webview实现NestedScrollingChild接口来实现。 国外的大神Tobias Rohloff
2017-07-21 14:34:14
4067
原创 Tablayout设置下划线长度的几种方法以及遇到空指针问题。
利用反射获取到tablayout的mTabStrip,进行设置:代码如下: public static void setTabMargin(TabLayout tabs, int leftDip, int rightDip) { Class<?> tabLayout = tabs.getClass(); Field tabStrip = null;
2017-07-19 12:31:22
3641
7
原创 andriod两次返回退出程序实现
1、application管理activity可以把所有的activity放到一个集合里面进行管理。 在application里面进行管理, 在application里面添加Activity到一个集合里面。 /** * 添加 Activity * * @param pActivity * activity */
2017-06-26 11:28:38
301
翻译 ExpandableTextView——一个可折叠的Textview
一、简单介绍本文是在GitHub上找的一个库ExpandableTextView is an Android library that allows developers to easily create an TextView which can expand/collapse just like the Google Play's app description. Feel free to us
2017-06-22 10:16:17
6784
原创 安卓5.0 activity界面背景颜色详细介绍
伴随着Android5.0的发布也更新了support-v7-appcompat 到V21,其中增加了ToolBar、recyclerview、cardview等控件。 Android5.0对改变APP样式下了不小的功夫,写法也和以前不一样了,下面先简单介绍一下colorAccent,colorPrimary,colorPrimaryDark……的作用: 1.colorPrimar
2017-06-16 19:06:50
2674
原创 META-INF方式多渠道打包提示安装找不到安装证书
在Android 7.0系统 引入一项新的应用签名方案 APK Signature Scheme v2,它能提供更快的应用安装时间和更多针对未授权 APK 文件更改的保护。在默认情况下,Android Studio 2.2 和 Android Plugin for Gradle 2.2 会使用 APK Signature Scheme v2 和传统签名方案来签署您的应用。虽然建议您对您的应用采用 A
2017-06-16 19:00:03
1085
原创 Android适配全面屏,三星S8的18.9,小米mix全面屏
一般手机的屏幕纵横比为16:9,如1080x1920、1440x2560等,其比值为1.777777……,全面屏手机出现之前,Android中默认的最大屏幕纵横比(maximum aspect ratio)为1.86,即能够兼容16:9的屏幕。一些手机厂商为了追求更大的屏幕空间以及更极致的用户体验,于是提高了屏幕纵横比,17:9、19:10、18:9、18.5:9的手机开始进入市场,这些手机被...
2017-06-16 18:54:22
7945
1
原创 在Windows下Android Studio配置文件路径修改
先看一下默认生成的文件,Android Studio每次升级都会创建对应版本的配置文件,这里我删除了之前的文件了,只保留了最近的版本的。说一下在Windows下对Android Studio的相关配置文件的路径修改。如果C盘空间大的话就不用进行调整,但是对于C盘空间有限或者强迫症的人还是想改一改,那么怎么进行修改呢?先介绍一下这几个文件: Android Studio安装好以后会在系统
2017-06-16 18:46:30
13724
原创 Glide的简单封装GlideUtils
1、添加依赖 compile 'com.github.bumptech.glide:glide:3.7.0' compile 'com.android.support:support-v4:24.2.1'2、 1.默认加载public static void loadImageView(Context mContext, String path, ImageView mImageView) {
2017-06-09 16:42:46
635
原创 Glide图片框架使用详细介绍(四)自定义动画
1、动画基础从图像到图像的平滑过渡是非常重要的。用户不喜欢在应用中出现突然的转变。这就是 Glide 要做的。Glide 中有一个标准动画去柔软的在你的 UI 中改变。我们在之前的博客 看了 .crossFade()。但是这篇博客,我们要去看看除了 .crossFade() 的其他选择。Glide 提供了两个选项去设置一个动画。两个版本都是在 animate() 中,但传的参数并不同。在我们之前代码
2017-06-09 14:25:39
749
原创 Glide图片框架使用详细介绍(五)之Glide-源码详解
一.Glide的构造//Glide.java Glide(Engine engine, MemoryCache memoryCache, BitmapPool bitmapPool, Context context, DecodeFormat decodeFormat) { ... }Glide是通过GlideBuilder中的createGlide方法生成的(核
2017-06-09 13:54:05
540
原创 Glide图片框架使用详细介绍(三)自定义glide以及图片处理自定义transform
一、图片质量分类安卓图片显示的质量配置主要分为四种:ARGB_8888 :32位图,带透明度,每个像素占4个字节 ARGB_4444 :16位图,带透明度,每个像素占2个字节 RGB_565 :16位图,不带透明度,每个像素占2个字节 ALPHA_8 :32位图,只有透明度,不带颜色,每个像素占4个字节 (A代表透明度,RGB代表红绿蓝:即颜色)图片默认质量Picasso的默认质量是 ARG
2017-06-09 13:31:41
3781
原创 Glide图片框架使用详细介绍(二)之缓存策略
一、 上篇文章我们了解到 Glide的基本使用很简单,且可配置度高 http://blog.csdn.net/qq_37237245/article/details/72956121 Glide.with(this).load(url).into(imageView);和其他三级缓存一样,Glide的缓存读取顺序是 内存–>磁盘–>网络需要注意的是Glide的内存缓存和磁盘缓存的配置相互
2017-06-09 12:26:18
2973
android验证码界面ui实现
2017-09-22
CoordinatorLayout内使用webview导致一些js无法执行的问题
2017-09-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人