一亩三分地

鸟高藏于天,鱼深潜于水

    android实现一行命令打包上传

    实用技巧

    前言 测试是我们开发中不可缺少的一个环节,我们一般都会有自己的测试环境,我们的测试apk可能会放在我们的内网上,也可能会放在三方测试平台,比如fir.im、蒲公英等等,但是有时会出现没有合适的位置访问安装包,又考虑三方平台的安全性问题,这时就尴尬了,这篇文章就是讲的如何去解决这一麻烦。 关于python脚本 脚本在后端开发中很常见,比如发版上线、跑批量等等,但是在移动端开发中显得没有那...

    酷炫效果-仿网易新闻阅读偏好效果

    自定义View

    二话不说,先体验一下再看文章,二维码附上 2017-10-20更新,对代码进行了相关优化,封装和解耦更彻底 代码传送门 前段时间看到网易的阅读偏好页面很酷炫,很好奇网易是怎么绘制这种页面的,不知道你们的第一反应是什么,我看到的第一眼就觉得是自定义view。我们来验证一下,打开开发者选项中的显示布局边界,我们看到如下图所示的界面: 我们看到网易是通过组合控件实现这种效果,...

    工厂模式

    设计模式

    1.概述 讲工厂模式之前我们先来讲一下我们项目中可能存在的一个问题。大家的项目中使用的缓存,不管是官方提供的SharePreference还是File存储、数据库、还是基于这些封装后的方案,在项目的使用中我们有时候没有考虑到后期应用版本升级迭代,在需要缓存数据到本地的地方我们可能这样写,以我目前使用的File缓存的开源方案ACache为例子: 最基本的用法,没有任何封装,最原始的配方 A...

    APP启动优化

    APP性能优化

    1.概述 App启动方式,我们通常分为以下两种: 1.冷启动: 启动应用时,系统后台没有该应用的进程,这时系统会为该应用新创建一个进程,这就是我们说的冷启动。冷启动因为系统重新创建一个进程,所以应用创建和初始化Application,然后创建和初始化我们的LaucherActivity类,最终我们的应用显示给用户。 2.热启动: 当应用启动之后,系统后台已经有这个应用的进...

    Builder模式

    设计模式

    设计模式-Builder模式 上一篇文章设计模式-单例模式我们介绍了单例模式的几种用法和优缺点,具体的我们需要结合项目中的场景去具体选择。这一篇我们来学习Builder模式(有的翻译为建造者、构建者),builder模式在Android的开发场景中用的还是挺多的,比如Android源码中的AlertDialog、StringBuilder和StringBuffe等等,三方库中的GsonBui...

    Handler源码分析

    源码解析

    1.概述 Handler一般在Android的UI线程和子线程间通信使用,之前我们在分析AsyncTask源码的时候就发现其实她的内部是Handler和Thread的一个组合,子线程做耗时的计算任务,Handler负责传递和接收结果。AsyncTask的源码解析请移步到我的另一篇文章AsyncTask源码分析。 2.用法 我们这里简单回顾一下Handler的用法: 创建一个Handler用...

    APK大瘦身

    APP性能优化

    随着我们的APP迭代,安装包的体积也会跟着增大。 就拿我目前所开发维护的APP来讲,版本号20,APK大小是12M,金融类的应用。虽然功能也不少,但是因为是混合开发,这个大小相对来说是偏大的,应用太大不利于运营推广,并且浪费用户的流量,所以在APP的瘦身是很必要的。这片文章讲我的应用在APK瘦身中的一些经验方法,希望对你能有所帮助。 APK分析 我们来看下APK的构成,将你编译后的APK拖...

    单例模式

    设计模式

    1.单例模式的概念 单例模式其实是一个类只有一个实例,而且自行实例化并向整个系统提供这个实例的设计模式。是最简单也是应用最广的设计模式。一般用于避免产生多个对象消耗系统资源或者要求某种类型的对象必须独一无二的场景。 2.单例模式常见写法 单例模式有很多种写法,懒汉式、饿汉式、双重校验锁(DCL)、类级内部、枚举等等,这里我们只讲上面说的的这5种。 2.1 懒汉式 体现的...

    Mac下安装TensorFlow

    小白学习人工智能

    人工智能和机器学习现在已经成为老幼皆知的科学名词了,这要归功于谷歌、facebook等等这类大公司不遗余力的推广,比如谷歌甚至把压箱底的秘籍TensorFlow给开源出来,这流行程度可以称之为人工智能下的Android也不为过。谷歌这一做法其实和开源Android类似,说大了去是造福全人类,帮助中小型公司做出自己的智能产品,自私点说其实是在布局人工职能,建立起一套标准,争夺未来话语权。不...

    AsyncTask源码分析

    源码分析

    AsyncTask大家都不会陌生吧,当然现在有比如RxJava这种替代方案,但是AsyncTask我们还是要去分析的,这样我们能更好的理解Android系统是怎样运行的。AsyncTask内部封装了Thread和Handler,简化了他们的使用,我们都知道子线程中是不能更新UI的,我们需要在子线程中计算然后在主线程中更新UI,AsyncTask就提供了这么一种简便的实现方式。 简要说明Asy...