自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

缘聚缘随缘

每天坚持一点,努力一点

  • 博客(13)
  • 资源 (6)
  • 收藏
  • 关注

原创 构建RN碰到的问题

RN运行构建常见问题

2022-11-19 15:27:43 1050 1

原创 如何打造一款商业级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

原创 网络基础层

网络基础

2021-01-28 13:31:35 305

原创 线程安全性

线程安全性 原子性 同一时间只能有一个线程对它进行操作,提供了互斥访问 原子性详解: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

butterknife.rar

手写Butterknife,以及原理分析,总结实现过程,提供给大家参考,有错误的地方欢迎指出

2019-09-09

pdf 任何系统都可打开

提供给C++初级开发着 ,详细教程,更好的了解Cmake的流程细节

2019-01-11

openGL初步实现抖音摄像头绘制

初步实现抖音后置摄像头的显示,可以运行,使用了android的openGL技术

2018-11-07

android项目框架

此资源是android项目独立干净的项目框架,可以直接使用,才用了MVP设计模式okhttp网络请求butterknife开源库,百分比布局适配,CacheUtils缓存机制,frament与activity的搭配封装干净的项目框架,可直接下载开发您自己的app

2018-10-25

热修复android andFix

新推出的是sophix,兼任到7.0,原理也同样来自于AndFix

2018-10-25

android-增量更新

android增量更新代码demo,实现增量更新,现在有各种合并差分包的开源库,比如:bsdiff、hdiff,我们只需要获得源码直接使用即可

2018-10-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除