
ZUI易入门Android
SickeyLee
努力学习,天天向上,最美的诗和远方!
展开
-
屏幕适配
目录前言 各平板数据比较 为什么看起来更小了?(头条方案跟最小宽度方案比较) 0.8 的参数 sw600dp-dpi 最后称述 smallesWidth 方案迁移 优缺点 优点 缺点 issue 一个 Bitmap 的density 问题 附录(适配核心代码)前言大家好,现在给大家推荐一种极低版本的 Android 屏幕适配方案,就是今日头条适配方案,“极低成本”这四个字正是今日头条的适配文章标题。众所周知,安卓的屏幕碎片化极其严重,适配一直是从事.原创 2020-11-09 21:47:43 · 419 阅读 · 0 评论 -
Fragment懒加载预加载
1. 预加载viewpager.setOffscreenPageLimit(2);,默认是预加载1,可以结合懒加载使用。 如果希望进入viewpager,Fragment只加载一次,再次滑动不需加载(只有退出Activity),可以重写viewpager adapter的getItem,去掉super2.懒加载 publicabstractclassLazyFragmentextendsFragment{ ...原创 2020-10-26 22:31:02 · 511 阅读 · 0 评论 -
Android 面试点
###测试请求的地址> `http://httpbin.org`###post上传数据的数据形式* key-value:-->表单.结构单一.而且繁琐 List<BasicNameValuePair> parameters = new ArrayList<BasicNameValuePair>(); for (Map.Entry<String, String> info : map.entrySet()) {...原创 2020-10-24 15:11:21 · 1046 阅读 · 0 评论 -
再来说说Lambda表达式的是使用?
函数式编程概念什么是函数式编程面向对象编程是对数据进行抽象,而函数式编程是对行为进行抽象。现实世界中,数据和行为并存,程序也是如此,因此这两种编程方式我们都得学重点:在思考问题时,使用不可变值和函数,函数对一个值进行处理,映射成另一个值谈 Java 程序员如何定义函数式编程还为时尚早,但是,这根本不重要!我们关心的是如何写出好代码,而不是符合函数式编程风格的代码。为什么要学函数式编程 用函数(行为)对数据处理,是学习大数据的基石 好的效率(并发执行) 成一个功能原创 2020-10-09 22:03:28 · 188 阅读 · 0 评论 -
ZUI易入门Android之Handler
原创 2020-09-17 21:57:31 · 148 阅读 · 0 评论 -
ZUI易入门Android之 MMKV
MMKV是什么? 在Android开发过程中,我们经常会使用到一些存储。经常使用sharepreferences存储,当你的数据量在不需要使用数据库,但sharepreferences感觉又无法承载的时候,但性能卓越的存储框架,由腾讯旗下的微信开发—MMKV今天我们主要从这几个方面来解释一下MMKVMMKV存储优势 MMKV存储支持的数据类型 MMKV引入依赖 MMKV存储与获取 MMKV更多知识 MainActivity中使用代码 一. MMKV存储优势...原创 2020-09-16 21:24:41 · 1447 阅读 · 0 评论 -
ZUI易入门Android之音视频(一)
什么是音视频?H264视频的压缩格式 aac的音频格式 ,组成一个视频封装格式的视频文件 比如 MP4H264是怎么来的呢?------->yuv经过编码(压缩)而来aac是怎么来的呢?--------->pcm经过编码(压缩)而来编码的过程解码什么是H264编码视频播放是通过什么来进行解码的呢?MediaPlayer怎么进行解码dsp的工作流程...原创 2020-09-14 21:57:11 · 168 阅读 · 0 评论 -
ZUI易入门Android之NDK绝对加密
使用NDK,将敏感数据和加密方式放到native层,因为C++代码编译后生成的so库是一个二进制文件,这无疑会增加破解的难度。利用这个特性,可以将客户端的敏感数据写在C++代码中,从而增强应用的安全性。1.首先创建了加密工具类:public class HttpKeyUtil { static { System.loadLibrary("jniSecret"); } //根据随机值去获取密钥 public static native String getH..原创 2020-09-04 09:20:21 · 562 阅读 · 0 评论 -
ZUI易入门Android之线程间通信
⼀个线程启动别的线程:new Thread().start()、Executor.execute() 等 ⼀个线程终结另⼀个线程 Thread.stop() Thread.interrupt():温和式终结:不⽴即、不强制 interrupted() 和 isInterrupted():检查(和重置)中断状态 InterruptedException:如果在线程「等待」时中断,或者在中断状态「等待」,直 接结束等待过程(...原创 2020-09-03 16:25:37 · 155 阅读 · 0 评论 -
ZUI易入门Android之线程同步与线程安全
synchronized 方法private synchronized void count(int newValue) { x =newValue; y = newValue; if (x != y){ System.out.println("x: " + x + ", y:" + y); }}synchronized代码块private void count(int...原创 2020-09-03 10:47:10 · 208 阅读 · 0 评论 -
ZUI易入门Android之五种创建线程的方式
1.多线程创建方式Thread的创建方式Thread thread = new Thread() { @Override public void run() { System.out.println("Thread started!"); }};thread.start();2.Runnable的创建方式Runnable runnable = new Runnable() { @Overridepublic void run...原创 2020-09-03 10:35:08 · 378 阅读 · 0 评论 -
ZUI易入门Android之libjpeg实现图片压缩
Android中图片是以bitmap形式存在的,那么bitmap所占内存,直接影响到了应用所占内存大小,首先要知道bitmap所占内存大小计算方式:图片长度 x 图片宽度 x 一个像素点占用的字节数以下是图片的压缩格式:其中,A代表透明度;R代表红色;G代表绿色;B代表蓝色。ALPHA_8表示8位Alpha位图,即A=8,一个像素点占用1个字节,它没有颜色,只有透明度ARGB_4444表示16位ARGB位图,即A=4,R=4,G=4,B=4,一个像素点占4+4+4+4=16位...原创 2020-09-03 08:42:35 · 474 阅读 · 0 评论 -
ZUI易入门Android之SQL 语句大全
一、基础1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server---创建 备份数据的deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'---开始 备份BACKUP DATABASE pubs TO testBack4、说明:...原创 2020-08-28 12:41:51 · 670 阅读 · 0 评论 -
ZUI易入门Android之retrofit
原创 2020-08-20 14:43:48 · 184 阅读 · 0 评论 -
简历技能点
具备C、Java语言编写能力以及常见的设计模式,熟悉Kottlin 、Groovy语言,具备良好的编码习惯,具备独立开发的能力。 Java和c没有什么说的 常见的设计模式单例模式、工厂模式、观察者模式、代理模式、适配器模式、建造者设计模式 、中介者模式、模板设计模式代理模式 静态代理 动态代理(JDK和CJlib代理)主要区别是cjlib目标对象不需要实现接口 适配器设计模式 以生活中充电器的例子来讲解适配器,充电器本身相当于Adapter,220V交流电相当于src (即被适配...原创 2020-08-12 21:09:37 · 2297 阅读 · 0 评论 -
Android 优秀的开源库
前言收集了一些比较常见的开源库,特此记录(已收录350+)。另外,本文将持续更新,大家有关于Android 优秀的开源库,也可以在下面留言。一 、基本控件TextView HTextView 一款支持TextView文字动画效果的Android组件库。 ScrollNumber 滚动数字控件 ticker 滚动数字控件 ReadMoreTextView 阅读更多,折叠文本 ExpandableTextView 折叠文本 android-au原创 2020-08-12 14:51:50 · 1457 阅读 · 0 评论 -
ZUI易入门Android之TCP协议
TCP有6种标示:SYN(建立联机) ACK(确认) PSH(传送) FIN(结束) RST(重置) URG(紧急)第一次握手 客户端向服务器发出连接请求报文,这时报文首部中的同部位SYN=1,同时随机生成初始序列号 seq=x,此时,TCP客户端进程进入了 SYN-SENT(同步已发送状态)状态。TCP规定,SYN报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号。这个三次握手中的开始。表示客户端想要和服务端建立连接。 第二次握手 TCP服务器收...原创 2020-08-11 15:32:57 · 297 阅读 · 0 评论 -
ZUI易入门Android之MVP实践
在入门MVP案例之前我们现对Activity基类进行创建@Retention(RUNTIME) //运行时 注解@Target(TYPE) // 类 接口 注解public @interface ViewInject { int mainlayoutid() default -1;}public abstract class BaseActivity extends LifeCircleMvpActivity { @Override protected.原创 2020-08-11 13:49:08 · 225 阅读 · 0 评论 -
ZUI易入门Android之MVP
其实我们日常开发中的Activity,Fragment和XML界面就相当于是一个 MVC 的架构模式,Activity中不仅要处理各种 UI 操作还要请求数据以及解析。这样的后果就是Activity可能会有几千行的代码,不便于维护,基于此现象及解耦的原则,才使用MVP的架构模式进行分离代码,其次MVP便于后期的代码重用,比如相同的业务逻辑,不同的ui界面等,开发MVP框架最重要的注意事项是内存泄漏。MVP架构由MVC发展而来。在MVP中,M代表Model,V代表View,P代表Pres...原创 2020-08-11 13:23:22 · 222 阅读 · 0 评论 -
ZUI易入门Android之bitmap-and-drawable
一、相关概念1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象2、Canvas画布,绘图的目的区域,用于绘图3、Bitmap位图,用于图的处理4、Matrix矩阵二、Bitmap1、从资源中获取BitmapJava代码 Resourcesres=getResources(); Bi...原创 2020-08-08 23:18:13 · 167 阅读 · 0 评论 -
ZUI易入门Android之“沉浸式”状态栏
所谓“沉浸式”状态栏 这里所说的沉浸式状态栏,就是指上面的效果,状态栏和 Toolbar 的颜色保持一致,融为一体的 效果。 版本差异及解决方法 本文所用的示例使用的 style 风格是 NoActionBar 的,标题栏使用的是 Toolbar 控件,请知悉。 Android4.4 Android4.4 以前的版本,状态栏的颜色都是黑色的,而且无法修改;但一般 APP 的 Toolbar 都不 会设置为黑色,于是,两者 有十分明显的颜色区分,各自占有不同的区域,填充不同的颜原创 2020-08-08 16:24:52 · 351 阅读 · 0 评论 -
ZUI易入门Android之图片压缩
Android应用开发中三种常见的图片压缩方法,分别是:质量压缩法、比例压缩法(根据路径获取图片并压缩)和比例压缩法(根据Bitmap图片压缩)。一、质量压缩法private Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos)...原创 2020-08-02 22:43:37 · 191 阅读 · 0 评论 -
ZUI易入门Android之JobScheduler
在一篇关于网络优化的博文中发现了这个词。我们的项目中并没有使用到这个东西,但看了一下还是非常好用的,mark一下以后一定会用到吧。贴官方文档,喜欢自学的可以过去看看贴官方Demo,官方给出的例子也是非常好的,里面用到了Messager,以后会对它进行介绍。这个类有什么用呢? 我们想象一种情景:当且仅当设备在空闲状态, 并且使用wifi时, 自动下载新的Apk。也许我们可能会这么做: 注册一个广播接受者 , 监听屏幕熄灭状态 , 熄灭之后检查网络状态 , 然后再在广播接受者中启动一个服务去下载新的a原创 2020-07-30 22:01:59 · 380 阅读 · 0 评论 -
ZUI易入门Android之安全
Post请求Post请求与Get请求的区别 Get请求的参数是直接放在url后面的,而Post请求是放在请求体中的 Get请求参数的长度会根据浏览器的不同实现有一定限制,而Post请求参数长度没有限制 Get请求方便测试,直接输入地址即可,而Post请求不方便测试,需要借助代码或者工具进行发送 Get请求和Post请求没有本质的区别,只是定义上的区别,比如如果你非要将get方式的参数放在请求体中,那么服务器也是可以接收处理的,同样,你也可以将post方式的参数拼在url后面 Post原创 2020-07-29 23:42:47 · 364 阅读 · 0 评论 -
ZUI易入门Android之Volley
1. 开源意识和开放平台的培养了解Github网站java分类中star数最多的前2页开源项目 了解常见开源项目网站和开放平台 AndroidUI效果网站 http://www.23code.com/ Android动画项目 http://blog.youkuaiyun.com/duguang77/article/details/18230867 流行开源项目收集网站 https://github.com/Trinea/android-open-project 开源项目收集和源码解析网站 http:原创 2020-07-29 23:39:41 · 285 阅读 · 0 评论 -
ZUI易入门Android之Xposed
XposedXposed框架是一款开源框架,其功能是可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。Xposed框架主要通过替换/system/bin/app_process程序控制zygote进程,使得app_process在启动过程中会加载XposedBridge.jar这个jar包,从而完成对Zygote进程及其创建的Dalvik虚拟机的劫持。与采取传统的Inhook方式相比,Xposed在开机的时候完成对.原创 2020-07-27 20:55:45 · 219 阅读 · 0 评论 -
ZUI易入门Android之C++ 资源大全
标准库C++标准库,包括了STL容器,算法和函数等。C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。 Standard Template Library:标准模板库 C POSIX library: POSIX系统的C标准库规范 ISO C++ Standards Committee:C++标准委员会框架C++通用框架和库Apache C++ Standard Library:是一系列算法,容器,迭代器和...原创 2020-07-25 22:23:08 · 466 阅读 · 1 评论 -
ZUI易入门Android之客户端适配9.0方案
目录Section 1: 前言 1-41 概念 1-42 读者 1-43 参考文档 1-4Section 2: 技术方案 2-51 所有应用的行为变更 2-51.1 非SDK开放接口 2-51.2 加密提供商变更 2-61.3 后台应用访问受限 2-61.4 权限变更 2-61.5 Apache HTTP API 使用变更 2-81.6 强制执行FLAG_ACTIVITY_NEW_TASK 2-81.7 电源管理优化 2-82 针对Api 2...原创 2020-07-25 19:25:09 · 374 阅读 · 0 评论 -
ZUI易入门Android之ExoPlayer(二)
一、简介在安卓设备上播放视频和音乐是很受欢迎的活动。Android框架提供了MediaPlayer作为一个快速的解决方案,可以用最少的代码来播放媒体。Android还提供低级别的媒体api框架,如MediaCodec、AudioTrack和MediaDrm,可用于构建自定义媒体播放器解决方案。ExoPlayer是一款开源的应用级媒体播放器,基于Android的低级媒体API构建。本指南描述了ExoPlayer库及其使用。它是指ExoPlayer的主要演示应用程序中的代码,以提供具体的示例。该指南介绍转载 2020-07-24 23:20:08 · 1428 阅读 · 0 评论 -
ZUI易入门Android之ExoPlayer
ExoPlayer Library 概述ExoPlayer是运行在YouTube app Android版本上的视频播放器ExoPlayer是构建在Android低水平媒体API之上的一个应用层媒体播放器。和Android内置的媒体播放器相比,ExoPlayer有许多优点。ExoPlayer支持内置的媒体播放器支持的所有格式外加自适应格式DASH和SmoothStreaming。ExoPlayer可以被高度定制和扩展以适应不同的使用场景。ExoPlayer库的核心是ExoPlayer接口。Exo原创 2020-07-24 22:55:26 · 415 阅读 · 0 评论 -
ZUI易入门Android之WebView
public class WebViewActivity extends AppCompatActivity { private WebView mWebView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_web_view);.原创 2020-07-19 18:55:18 · 216 阅读 · 0 评论 -
ZUI易入门Android之开源框架的使用
前言:为了扩展大家的知识面,工作后对当前流行的一些开源框架有所了解,今天我们会给大家介绍一系列的第三方框架的使用方法。这些框架有的能简化我们的代码,比如那些繁冗的findviewbyid操作,有的把我们访问网络的操作进行了封装,有的可以高效地帮助我们实现图片下载和显示的功能,有效避免OOM,有的能高效地处理数据库的增删改查操作,等等。总之,掌握当前流行的第三方框架的使用方法能够有效提高我们的开发效率,下面我们就来对这些框架一一讲解。 依赖注入概念 B: 框架的使用目的之一就是简化代码、降.原创 2020-07-12 23:22:41 · 543 阅读 · 0 评论 -
ZUI易入门Android之Android设备系统及屏幕分辨率统计信息网站
友盟统计https://compass.umeng.com/#/equipment?_k=zub6q7谷歌统计原创 2020-07-07 22:45:56 · 444 阅读 · 0 评论 -
ZUI易入门Android之自定义view 之Canvas绘图详解(图文)
Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0。今天我们主要要了解的是2D相关的,如果你想看3D的话那么可以跳过这篇文章。大部分2D使用的api都在android.graphics和android.graphics.drawable包中。他们提供了图形处理相关的: Canvas、ColorFilter、Point(点)和RetcF(矩形)等,还有一些动画相关的:AnimationDrawable、 BitmapDrawable和T原创 2020-07-07 12:44:18 · 404 阅读 · 0 评论 -
ZUI易入门Android之自定义view (三)onDraw 方法
前言:上一篇已经介绍了用自己定义的属性怎么简单定义一个view《Android 自定义view(二) —— attr 使用》,那么接下来我们继续深究自定义view,下一步将要去简单理解自定义view的一个比较重要的方法 onDraw(Canvas canvas) ,在探究 onDraw方法之前,我们必须先深入了解两个类Paint和Canvas 。第一:认识Paint在探究onDraw之前首先必须要认识两个类,这里给出非常不错的两个资料参考网站,我也是从这里得到想要知道的东西,简单的说这下面.原创 2020-07-06 15:08:50 · 355 阅读 · 0 评论 -
ZUI易入门Android之ListView的优化的相关概念
前言 ListView是Android中最常用的控件,通过适配器来进行数据适配然后显示出来,而其性能是个很值得研究的话题。本文与你一起探讨Google I/O提供的优化Adapter方案,欢迎大家交流。正文 一、准备 1.1 了解关于Google IO大会关于Adapter的优化,参考以下文章: Android开发之ListView 适配器(Adapter)优化 Android开发——09Google I/O之让Android UI性能更高效(1.原创 2020-07-03 23:38:49 · 225 阅读 · 0 评论 -
ZUI易入门Android之AsyncTask
原创 2020-06-28 21:19:49 · 168 阅读 · 0 评论 -
ZUI易入门Android之Okhttp的相关概念
什么是okhttp?okhttp是一个第三方类库,用于android中请求网络。这是一个开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso和LeakCanary)为什么要使用OKHttpOKHttp是Android版Http客户端。非常高效,支持SPDY、连接池、GZI和HTTP缓存,支持SPDY,可以合并多个到同一个主机的请求。OkHttp 处理了很多网络疑难杂症:会从很多常用的连接问题中自动恢复。如果您的服务器配置了多个IP地址,当第一个IP连原创 2020-06-20 21:58:51 · 352 阅读 · 0 评论 -
ZUI易入门Android之Recyclerview之转场动画
private void initAnima() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {// ViewCompat.setTransitionName(ivShanghaiDetail,mActivityOptionsCompat); //开启转场动画 startPostponedEnterTransition(); ...原创 2020-06-20 21:53:51 · 406 阅读 · 0 评论 -
ZUI易入门Android之Recyclerview
Recyclerview几个重要的角色1、Recycler管理那些已经废弃了的或者从RecyclerView中分离的item view用于复用,主要用于缓存的设计。一共四层缓存:* 1.一级缓存:mAttachedScrap* 2.二级缓存:mCacheViews* 3.三级缓存:mViewCacheExtension* 4.四级缓存:mRecyclerPool2、LayoutManagerLayoutManager是一个抽象类,有3个...原创 2020-06-20 21:51:13 · 206 阅读 · 0 评论