移动开发
C v lie
追求美好,阳光
展开
-
Android屏幕适配方案
目前比较流行的屏幕适配方案是今日头条适配方案和smallest width限定符适配方案 首先来说一下今日头条的屏幕适配方案: 简介:我们写UI界面的时候,都是使用dp作为单位,UI给出的设计图也是以dp为单位,比如UI给的图是宽x高为360x640dp的。那么我们为了达到在所有手机上都能不变形的展示UI图,那么我们所有的手机都要是宽x高 = 360 x 640dp,很显然,实际情况不是这样的,因...原创 2020-04-17 20:52:27 · 431 阅读 · 0 评论 -
ExoPlayer的使用与解析(官方文档翻译)
简介 ExoPlayer是一个Android应用层的媒体播放器,它提供了一套可替换Android MediaPlayer的API,可以播放本地或者是线上的音视频资源。ExoPlayer支持一些Android MediaPlayer不支持的特性,比如适配DASH和SmoothStreaming 的播放。和MediaPlayer不同的是,ExoPlayer很容易自定义和扩展,并且它可以通过应用商店...原创 2019-04-28 22:54:13 · 5477 阅读 · 0 评论 -
Android 自定义轮播图(Banner)
先上图看效果: 知识要点: 轮播图是怎么做到无限循环的呢 让ViewPagerAdapter里面的getCount返回MAX_VALUE,instantiateItem方法中,获取图片的时候,让position % drawableList.size(),来得到真实值 @Override public int getCount() { return Integer.MAX_VA...原创 2019-03-11 17:04:45 · 952 阅读 · 0 评论 -
Retrofit源码解密之----------动态代理
写在前面的话 Retrofit是开源的网络请求框架,是目前最火的框架之一,也是求职面试之中被提问的比较多的知识点。最近抽了点时间阅读了一下Retrofit源代码,给大家分享一下 public <T> T create(final Class<T> service) { //判断service是不是个接口 Utils.validateServiceInter...原创 2019-03-08 22:21:25 · 210 阅读 · 0 评论 -
《Android开发艺术与探索》读书笔记之Binder
1.Binder是Android中夸进程通信的一种方式。从Android FrameWork 角度来说,Binder是ServiceManager连接各种Manager(ActivityManager和WindowManager等)和相应ManagerService的桥梁。从Android应用层来说,Binder是客户端和服务端进行通信的媒介,当bindService的时候,服务端会返回包含了一个...原创 2019-03-02 20:38:46 · 187 阅读 · 0 评论 -
Android抽屉集成示例
集成步骤: 1.新建一个Android studio工程: 2.添加依赖 compile 'com.ikimuhendis:ldrawer:0.1' 3.编写activity_main.xml文件 <android.support.v4.widget.DrawerLayout android:id="@+id/drawer_layout" xmlns:android="...原创 2019-02-18 09:53:40 · 171 阅读 · 0 评论 -
Android优化方案
1.启动时间优化 Android 启动耗时主要发生在Application的onCreate()方法和主Activity的onCreate()方法中,主线程如果不能尽快的执行渲染UI的操作,就会给人一种启动慢的感觉。产生这种现象的原因主要是启动时,Application的onCreate()方法中和主Activity的onCreate()方法中有一些操作占用了主线程的资源,导致主线程花去了时间去执...原创 2019-02-16 22:06:57 · 165 阅读 · 0 评论 -
Android apk打包流程
1.任何一个apk的运行都需要一个签名, 测试和开发阶段,开发工具会自动生成一个debug key来为应用签名;当应用要发布的时候,需要一个release key来为应用签名。 2.为什么要给Android应用程序签名? 这样做的根本原因是Android系统需要一个机制,保证以下几点: 1). 拿到一个应用的安装包,能够知道作者是谁 2). 当应用更新时,能够检测是不是作者本人提交的 3). 应用...原创 2019-01-30 14:08:17 · 10215 阅读 · 0 评论 -
git 仓库迁移
如果你的项目在一个地址的仓库上托管,后面想迁移到另一个地址的仓库上去,并且迁移的要求如下: 1. git 提交历史必须完全保留 2. git的各个分支和tag必须完全保留 那么可以通过下面操作完成迁移: 在新的地址上新建一个仓库,新建的仓库名字和原仓库名字保持一致就行 #clone下来旧的仓库 mkdir test git clone http://..../..../..../test_temp...原创 2019-02-15 10:27:28 · 170 阅读 · 0 评论 -
JAVA知识总结(一)
1.乐观锁 CAS是乐观锁技术,当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,而其他线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以再次尝试。 实现原理:如果内存位置V的值与操作线程预期原值A的值相匹配,那么处理器会自动将该位置更新为新值B,否则处理器将不做任何操作。CAS有效的说明了“我认为该位置应该包含值A,如果包含该值,则将B放到这个位置上...原创 2019-01-29 10:06:54 · 178 阅读 · 0 评论