PhotoMovie(https://github.com/yellowcath/PhotoMovie)可轻松实现类似抖音、微视、美拍的照片电影功能。效果如下滤镜效果转场效果基本用法可参照DemoPresenter//添加图片List<PhotoData>photoDataList=newLinkedList<PhotoData>();photoDataList.add(n
一、什么是冷启动1.冷启动的定义冷启动就是在启动应用前,系统中没有该应用的任何进程信息2.冷启动、热启动的区别热启动:用户使用返回键退出应用,然后马上又重新启动应用。冷启动会走application,而热启动不会走该方法,会从已有的进程启动应用3.冷启动时间的计算这个事件值从应用启动(创建进程)开始计算,到完成视图的第一次绘制(即Activity内容对用户可见)为止。二、冷启动的流程Zygote&
问题在有赞实习,他们的代码中使用了很多butterknife的相关操作,于是实践一下,简单实现自己想象中的绑定与点击思路BindView简化findViewById(R.id.xxx)BindClick简化setOnClickListener(this);0.绑定时两个参数:Objecthost,Viewview。1.遍历宿主中的全部Field,为设置了BindView注解的添加findViewB
上一篇文章中,我大概介绍了一下短视频的拍摄,主要就是音视频的加减速。这篇文章我将介绍下抖音视频特效的实现,废话不多说,进入正题。1.特效概览抖音上目前有这九种视频特效,本文将介绍前面六种的实现。有人可能会问了,为什么最后三种特效被忽略了。当然是因为我懒啦。2.『灵魂出窍』抖音的实现效果如下:我的实现效果如下:代码实现通过观察抖音的效果,可以看到,共有两个图层,一个是视频原图,还有一个是从中心放大并
https://github.com/JasmineBen/GankMvvm基于"干货集中营"的开放API,采用MVVM架构、RxJava、dagger2、glide、retrofit、GreenDao、rxpermissions2等技术实现了一个简单的Gank客户端
【APP冷启动秒开】:冷启动是指应用杀掉进程时的启动;秒开是指点击桌面APP的图标后立即显示启动页面(PS:这个启动页面不能是白屏、黑屏或长时间页面不显示无反应)。【优化效果图】【对比效果图】原因在给出实现方案之前,先解释两个问题:1、什么是Android的冷启动时间?冷启动时间是指用户从桌面点击APP的那一刻起到启动页面的Activity调用onCreate()方法之间的这个时间段(通俗点说是从
在上一篇实习随笔|周记(五)提过因为实习忙碌和秋招提前批将尽而焦灼和苦恼,于是在各种思想斗争和考虑后,终于下定决心在项目新版本上线之际办理了离职,并开始全心全意投入秋招。原以为此行必将艰难,也做好了持久战的准备,没曾想一路出奇的顺利。现在不打算再找了,终于可以好好填旧坑写总结了!在2018Android暑期实习面试总结曾介绍过个人情况、自学经历、校招流程和复习重点,这部分就不再赘述。那么本篇先以日
在AndroidStudio中导入高德地图以及百度地图SDK之后进行汇总。本文为第一次导入地图类SDK,以百度地图和高德地图为例,腾讯地图后续加入。百度和高德地图开放平台官网链接百度地图开放平台高德开放平台步骤1.获取KEY在相应的国内SDK开发者网站上获取key注意:首次创建应用需要输入的SHA1分两种:测试版(又称调试版,看各平台的描述),发布版的KEYSHA1值是不同的,发布apk时需要根据
最近在做项目的时候,得到了一份渗透测试的报告,其中有一个漏洞说的是App有被劫持的风险,然后为了修复这个漏洞,就了解了下什么是Activity劫持。本篇主要讲解什么是Activity劫持,并制作一个App模拟Activity劫持。Activity劫持什么是Activity劫持呢?简单来说就是当用户在运行一个App的时候,这时候有另一个恶意的程序在监听用户使用情况,当发现了想要劫持的App正在运行的
为什么要实现该效果?刚开始是在公司项目中有个点击飘心的效果,在飘心的同时,文字还能一致滚动【想象.png】。在Github找了几个跑马灯的库,本以为都能实现,但是跑在项目上总会出现每次点击飘心动画后,滚动的文字都会重新开始滚动,这不是产品要的效果。(回到家后自己写了个demo测试Github上几个跑马灯效果很好的库都没问题,真真是打脸了)先来推荐三个GitHub上实现跑马灯效果很不错的库sunfu
依赖本库不用写一句代码搞定屏幕适配:先上酸菜Github地址本适配方案是用的今日头条的适配方案,界面在不同尺寸屏幕上是等比缩放的;布局预览的时候请使用1920x1080(360dp宽度的分辨率都可以)的屏幕分辨率预览,预览是什么样在任何设备都是这个样子如果某个Activity不想启用适配功能,请打上注解:@IgnoreScreenAdapter如果老项目一直用的其它宽度dp预览的布局,则可以在Ap
配置Jenkins自动化打包,折腾了一段时间,折腾完成就感还是蛮大的,说白了就是一次配置长期受益吧。事先声明CentOS7上其实还是没有配置成功,自己的服务器1核1G内存打包的话感觉配置还是低了,最后在自己本地Mac上跑通了,用自己电脑当服务器,平常用足够了。现总结一些遇到坑,为后来人多铺点路吧。。。1.一开始对CentOS7系统不熟悉,直接上手在上面进行配置,出了问题很难排查,应该先在本地跑通然
在上一篇实习随笔|周记(五)提过因为实习忙碌和秋招提前批将尽而焦灼和苦恼,于是在各种思想斗争和考虑后,终于下定决心在项目新版本上线之际办理了离职,并开始全心全意投入秋招。原以为此行必将艰难,也做好了持久战的准备,没曾想一路出奇的顺利。现在不打算再找了,终于可以好好填旧坑写总结了!在2018Android暑期实习面试总结曾介绍过个人情况、自学经历、校招流程和复习重点,这部分就不再赘述。那么本篇先以日
前言无意中在知乎上看到了一个很有意思的回答:https://www.zhihu.com/question/277243683/answer/393676961题目是:如何把一段简单的代码变复杂?答主的回答当然是为了调侃。不过我觉得这倒是一个比较好玩的主题。HelloWorld作为我们编程语言入门的内容,是一个很简单很简单的一行代码。但是,当我们结合设计模式,抽象、多态、封装...的概念之后,我们的
介绍apt即AnnotationProcessingTool,通过在编译期间扫描相关注解最后生成.java文件的一种注解处理工具。目的通过自动生成.java文件来简化大量模板代码的书写,提高工作效率。源码浅析butterknifeBindAndroidviewsandcallbackstofieldsandmethods.下面就浅析下butterknife是如何实现绑定的1.首先看下项目结构,我们
Sophix官网文档地址https://help.aliyun.com/document_detail/53240.html快速接入项目build.gradle的repositories节点下添加maven{url"http://maven.aliyun.com/nexus/content/repositories/releases"}app目录build.gradle的dependencies节
前言才发现已经有一个月没更新博客了,上个月发布了两篇Chat:线性布局和相对布局的实现原理我的安卓生涯:从6k到25K,都经历了什么都是高质量的内容和技术分享,所以占用了比较多的时间,感兴趣的朋友可以支持一下我的创作,十分感谢~今天准备跟大家分享一下Retrofit的用法和源码的实现原理。Retrofit是对Okhttp的二次封装的开源库,目的是让okhttp使用起来更方便,更简洁,通过注解等信息
前言好久没有写文章了,今天就简单做一个APP检测更新的小工具,有点粗糙。支持断点续传,notification通知显示,下载完成自动安装,自己可根据大家的想法添加更多的功能,这里只是为了想我一样的初学者和比较简约的人所提供。App更新思路当我们点击检查更新的时候,就会向服务器发起版本检测的请求。一般的处理方式是:服务器返回的App版本与当前手机安装的版本号进行对比。如果服务器所返回的版本号大于当前
前言之前我们已经复习了Retrofit的基础用法,Retrofit的源码理解并不复杂,他实现的主要功能就是把接口文件通过注解转化成Okhttp请求,所以我们弄懂了主线,整个Retrofit我们就明白了。正文首先复习一下Retrofit的用法:valretrofit=Retrofit.Builder()//必填项.baseUrl("http://www.baidu.com").client(OkHt
1.竖直方向像素优化前一篇文章张我们已经实现图片的扭曲效果,但是只是仅仅扭曲了水平直线上的像素,这些扭曲后的像素在竖直方向还是处于一条直线中一次,图片的垂直边是竖直的看着很不自然。下面第一步我们要做的优化就是把这些竖直线上的像素y坐标代入正弦公式得到Y轴上优化过后的x坐标,那么整个扭曲图片看起来就更自然了。前面我们已经详细介绍了水平方向像素的扭曲原理,竖直方向上的扭曲我们就直接上核心代码吧,核心代