- 博客(13)
- 资源 (6)
- 收藏
- 关注
原创 如何打造一款商业级APP
前言技术服务于业务,而业务又大可分为三类:需求、问题、和解决方案。脱离业务的技术不复存在,不断迭代的技术手段也是为了解决业务的痛点,让业务更加顺畅,那么一款可以满足需求,解决问题的应用与技术的结合,就是商业级应用的必要条件,这也是开发者的价值所在,如果一个开发者没有参与过生命周期较长的产品,可能无法看到一个商业级的APP应该长成啥样,也并不清楚如何打造一款成熟的应用经历自2015年1月至今从事Android研发的工作7个年头,大致分了三个阶段, 第一阶段:就是在做业务,做各种各样的业务。第二阶段
2022-03-29 00:24:53 348
原创 自定义LinkedList数据结构
LinkedList是一个双向链表,长啥样呢如图所示:前驱为了指向当前节点的上一个节点 后驱为了指向当前节点的下一个节点 中间item 存数据数据结构是啥样子呢,代码如下:public class LinkedList<E> { /** * 结点 * @param <E> */ private static class Node<E> { // 数据域 E item;
2021-03-10 18:15:00 142
原创 选择排序详解
动画原理首先从一串数据中,找一个最小的,和第一个进行交换,从代码中看 预期结果应该是1和85换掉了应该是代码实现如下: public void Test() { // 定义一个数组 int[] array = {85,2,3,6,5,1,9,75,100,}; selectSort(array); // 打印出来 for (int i = 0; i < array.length; i++) { .
2021-03-05 19:00:19 100
原创 冒泡排序法
动画简介: 是一种简单直接地解决问题的方法, 常常直接基于问题的描述, 所以,蛮力法也是最容易应用的方法。 但是,用蛮力法设计的算法时间特性往往也是最低的, 典型的指数时间算法一般都是通过蛮力搜索而得到的 。(即输入资料的数量依线性成长,所花的时间将会以指数成长) 代码 // 定义一个数组 int[] array = {1,2,3,6,5}; // 第四步 套上外循环 因为内循环每次都可以找到一个最大的放在最后 那么外循环每次
2021-03-05 17:57:27 87
原创 线程安全性
线程安全性 原子性 同一时间只能有一个线程对它进行操作,提供了互斥访问 原子性详解:1. 原子性操作有三种 在JDK中,提供了一个Atomic 大多实现机制是以CAS来完成原子性 Atomic源码分析,在源码中它使用了一个unsafe类,具体实现是调用了compareAndSwap,含义是比较并且交换, <1>. 在操作之前首先会读取当前值存起来 <2>.然后计算结果值(例如...
2021-01-27 18:04:53 149 2
原创 Jettpack
LiveData;它一个可观察的数据持有者类,与常规的 Observable 不一样,LiveData 可感知 Activity、Fragment、Service 的生命周期,确保 LiveData 仅更新处于活动生命周期状态的组件观察者。LiveData的优点保持UI与数据的一致性:LiveData 遵循观察者设计模式,生命周期发生变化时,LiveData 会通知对应的应用程序组件(Observer),数据发生变化时也会通知更新 UI. 避免内存泄漏:这个 Observer 绑定了 Lifec
2021-01-24 11:36:20 99
原创 手写Butterknife框架
1.分析Butterknife在我们开发的过程中都是运行时完成的,ButterKnife 是在java文件转换成class文件的过程中完成的,也就是常说的APT(注解处理器),它可以在转换过程中可以做很多事情。java------------>class-------------->runtime(JVM)2.实现分析首先建立几个module,一个是用户使用的app...
2019-09-09 19:04:10 164
原创 初步了解OpenGL开启摄像头
什么是OpenGL?openGL是一个图形绘制专业编程接口,功能比较强大,可以绘制二维,三维,它与硬件没有关系,也可以在不同的平台上使用,进行良好的移植,使用较为广泛分析OpenGL坐标系和android坐标系openGL的世界左边是从屏幕的中心点是0,0 android 手机中心点是从屏幕左上角开始的如图: android:android的坐标点要用opengl的...
2018-11-07 19:03:11 1926 1
原创 Anroid分析Andfix原理手写实现
前言 目前市面上对于热修复一线互联网企业大概分为三家:1、阿里 2、腾讯 3、美团 而这三家公司提供的开源库,给了我们android开发者一些答案,今天我们了解一下阿里的andfix,目前andfix已经在16底停止维护了,新推出的是sophix,兼任到7.0,原理也同样来自于AndFix,当我们开发人员修复线上的包的时候,普遍方式是通过下载完整的apk or 差分包,让用...
2018-10-25 11:06:59 317
原创 Android-增量更新
前言在我们平常开发app时候,版本1.0迭代到2.0的时候目前还有不少开发得应用是全量更新,也就是重新下载整个2.0的安装包,重新安装到手机,其实是有些浪费资源,用户体验也不是很好,虽然现在是无限流量,一个app老是出现让用户更新全量包,极其影响用户体验,而增量更新可以解决2.0-1.0的差分包的大小,用户只需要在old.apk上更新new.apk的差分包,合成新的apk即可,更新数据包会大大...
2018-10-22 09:20:51 230 1
原创 手写数据库框架
目录前言android发展至今开源框架很多,数据库框架也有一些比较好的,而对于我们开发者而言网上有很多框架,我们只需要拿过来会用,一般都可以解决项目中遇到的问题,而我们自己写的代码量就比较少了,也很难突破开发瓶颈,开发模式变成了Ctrl+C Ctrl+V,而依赖过来的jar包,有些未必是项目需要用到的,很多冗余代码量较大的时候,间接的导致app变大,所以这个时候就需要我们手写代码来解决这...
2018-09-11 14:05:07 1350
android项目框架
2018-10-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人