自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

童年纸飞机的博客

坚持比方法更重要

  • 博客(58)
  • 收藏
  • 关注

原创 记录Android Jni编译过程

Android ndk 编译

2022-12-23 18:06:33 2132 2

原创 关于腾讯buglly符号表问题

众所周知, Bugly是一个比较优秀的异常上报工具, java上层的崩溃和底层的崩溃都可以收集得到,在市面上得到了非常广泛的应用,但是对于一些ndk开发方面, 却一直就存在一个比较头疼的问题, 就是bugly即使捕获到了底层的堆栈,但是是长这个样子的:对于一个研发而言,拿到这种堆栈信息,基本是没有什么价值的, 那么怎么由这个看不懂的格式变为可以看懂的格式呢? 首先呢,我们推荐bugly官方提供的方式–上传符号表至bugly, 原则上符号表传对了就能解析出来的, 至少我用我们自己写的demo这样做是可以解

2022-05-10 20:38:51 1634

原创 Android-gradle常用

在gradle中添加一个自定义任务题目:这个小弹窗里面点开,可以出现我自己写的一些自定义任务,然后这些任务主要就是跑一些我写好的python脚本,需要怎么做首先你得自定义一个task,但是对于我这个从来没有写过gradle的小白来说,就这个task让我折腾了将近半天!我终于找到答案了。首先你可以自己写一个文件,专注于做你分好类的任务,在我这里,我就独立了一个文件箭头就是我新增的文件,然后呢,我在新的文件里面,写了几个task,这个东西就像写java代码的方法一样,挺好玩的。就这种样子来写就

2021-12-22 13:01:06 1033

原创 MAC创建自定义功能和快捷键设置

设置自动操作自动操作设置 分析主要是以后你如果有其他特殊的功能在网上找不到,你如何设置呢?乍一看这个自动操作的时候,我心里是懵了的,因为这种界面感觉明显不是针对电脑新手的,需要一定的学习成本的。我对这套的初步理解是建立在操作系统提供的api上理解的。我认为我们定义的这堆操作触发到执行的流程可以简化为:操作系统对某些特殊函数监听–> 等你点击右键或者其他可以展示出你自定义操作入口的时候,可以根据是否最近的操作触发了刚刚的函数而决定展示你新定义的自动操作而是否展示你的自动操作的入口,的一些条件是

2021-09-12 15:30:24 729

原创 2021-08-23

操作系统概念理论位置:处于计算机用户与计算机硬件之间目的:为用户提供一个便捷高效执行程序的环境功能是:它是软件,用来管理计算机硬件的软件,因为软件,并且操作系统是一个非常复杂的软件,所以我们在设计这个系统之前,就要把明确界定系统目标作为重中之重,分块构造,并且有严格的输入输出功能。操作系统根据计算机的用途和类型会有所不同大型机操作系统(商用)个人计算机移动计算机计算机系统的四大组件硬件操作系统应用程序用户我们常讲的,不好的代码可能会造成资源的浪费。这里的资源指的具体是什

2021-08-23 21:44:42 200

原创 Activity生命周期与启动模式

这部分,只有用到的时候我才会仔仔细细的回顾一下,但是很快就能忘记。这次复习想想一定要留下点什么,之后遇到问题的时候直接看自己的文章复习一下就行了。我把这部分写成了笔记。由于格式问题,我导出成了图片。字丑观客见谅。。。...

2021-07-10 15:53:37 92

原创 设计模式--访问者模式

Visitor Pattern网抄访问者模式概念在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。interface IVisitor{ void visitElementA(ElementA a); void visitElementB(ElementB b);}in

2021-07-06 15:45:24 117

原创 设计模式--策略模式

Strategy Pattern简介策略模式言简意赅,就是策略。是对算法的封装。这样说着有些模糊,这个模式很简单,也有超多的变种。看代码比看文字描述更能体会。代码如下。图public interface BaseStrategy { int doOption(int a, int b);}public class StrategyAdd implements BaseStrategy{ @Override public int doOption(int a, int

2021-05-19 15:20:12 2108

原创 设计模式--中介者模式

Mediator Pattern中介者模式,又称调停模式了解这个之前建议了解一下迪米特法则,中介者模式就是迪米特法则的典型应用。我觉的这个法则更有学习价值!是碰到了什么问题,才出现的它举个简单的例子,假设写程序时候,需要维护一个数据,假设类, A, B, C,D,E 都会用到这个数据,并且都会修改这个数据。并且每一方修改数据的时候,其余的各类必须也修改这个数据并呈现不同的效果。那么最完蛋的一种写法就是,让ABCDE这几个类全部相互持有,每当任意一个修改数据的时候,就调用这几个类也去修改数据。这样效

2021-05-12 17:48:38 79

原创 设计模式--迭代器模式i

IteratorPattern万万没想到,迭代器模式说的就是最最最平常用到的数组迭代!我之前还以为是啥高大上的东西呢。这个目前可以说是很熟了。但是我想其中包含的思想尽量了解一下吧。顿悟思想啊!thinking来来来,看看最最最普通的代码首先想一个问题哈!为什么源码有时候放着好好的for each 语句不让你用,偏偏“南辕北辙”似的让你取主动获取一个迭代器,然后自己再进行循环访问呢?public synchronized void removeCallback(Listener listener)

2021-05-12 17:46:55 104

原创 设计模式--解释器模式

Interpreter Pattern解释器模式简述解释器模式,我看了一些相关的文章,第一个感觉就是,不常用。另外一个感觉就是,这玩意儿解决的问题特别局限。也就是分析分析简单语句,写个脚本命令解析啥的。我工作几年,一次这种模式一次都没有用过。是碰到了什么问题,才出现的它假设目前有一个题目,给你任意一个a+b+c这类的字符串,比较简单,只有加减法。你得出正确结果!你自己设计一个算法吧。是任意长度欧!其实这就需要一个简单的解释器了,因为语句再长,实际上他们是符合一定规律的。解:// 抽象出来一个

2021-05-12 17:46:12 88

原创 设计模式--过滤器模式

Filter Pattern简介过滤器模式或者标准模式是一种设计模式,允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式将他们连接起来,这种设计模式数据结构性设计模式。他会结合多个标准来获得单一标准类图简介实现public class Person { private String name; private String gender; private String maritalStatus; public Person(String nam

2021-05-12 17:43:01 107

原创 设计模式--外观模式

Facade Pattern外观模式简介外观模式用以隐藏系统的复杂性,并向客户端提供一个可以访问的系统接口。这种接口属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简单方法对现有类的方法委托调用。介绍意图: 为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。主要解决: 降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。何时使用:1 客户端不需要知道系统内部的复杂

2021-05-12 17:38:53 81

原创 设计模式--组合模式

组合模式组合模式,又叫部分整体模式,是用于把一组相似的对象,当做单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它提供了修改相同对象组的方式。介绍意图: 将对象组合成树形结构以表示”部分-整体“的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。主要解决: 它在我么的属性结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样处理复杂元素,从而使得客户程序的复杂元素的内部结构解耦。应用实例:s算术表达式包

2021-05-12 17:35:04 139 1

原创 设计模式--命令模式

Command Pattern命令模式我觉得我并没有找到很好的博客能够了解这个模式的本质简单来讲,命令模式,就是将命令与操作进行结合,并进行封装,最后形成一个对象一个对象这类的形式。以便于真实运行的时候,可以将这些命令以数据结构的形式进行存储,从而形成对命令的增删查改这类功能。其实在本质上,执行不同命令的角色,很可能是同一个对象,只不过是对这个执行对象进行了一个封装而已,其目的就是让这些命令具有可编辑性。是碰到了什么问题,才出现的它我认为这家伙顶多就能解决一些极其枯燥,很单元的,一些执行。至少现

2021-05-12 17:28:17 88 2

原创 设计模式--责任链模式

责任链模式责任链模式其实是很简单的,起码比享元模式简单的多。问题的提出网上有个特别普遍的例子,就是公司员工请假这个事儿。3天之内,直属上司可以批准,3天到5天,上司的上司批,如果是5天以上,直接CEO批。然后让你写代码,巴拉巴拉的。听到这个其实我想脑子中已经有一半的代码成品了吧。并且我已经在demo中写了一个最直接的例子。代码package com.example.pattern.ChainResponsbilityPattern.demo1;/**基类,留了一个处理接口。接收到参数的时候就处

2021-05-12 17:23:02 91

原创 设计模式--适配器模式

适配器模式主要作用解决接口之间的不兼容问题,用于包装不兼容的对象,使原本由于接口不兼容而不能在一起工作的哪些类可以在一起工作。分类类的适配器模式对象的适配器模式类的适配器模式类的适配器模式是把适配的类的API转换成为目标类的API对象的适配器模式对象的适配器模式,本质上也是一样的道理,但是不同的是,对象的适配器模式不是使用的继承关系链接到Adaptee类,而是使用委派关系连接到Adaptee类的。uml类的适配器class Adaptee { void specifi

2021-05-12 17:20:09 62

原创 设计模式--备忘录模式

MementoPattern Pattern简述备忘录模式通常用于解决用户回到操作的某个步骤这种问题。例如,一个简单的图片编辑器,用户一步步的处理某个图片,但是修着修着发现不对头,想要回退重新修。就不断的按撤销键。此时图片编辑器的内部状态是要一个个回退的,最终回退到用户最开始操作的某个步骤上。图片面板展示的样式也应该是回退之后的样子。这里面涉及到一个很重要的特点,就是“步骤!”。备忘录模式的关键也就在于对于步骤状态的存储。PS:对于回退,我记得之前也有一种模式也和回退有关。找了找,是命令模式。不过命令模

2021-05-12 17:03:39 115 1

原创 关于Android中的画笔画画

bitmap, canvas, paint 区别, 联系, 使用关系Canvas对于这个类,不熟悉, 但绝对见过!而且十分令人印象深刻的是在Android 源码中, 一个举世闻名的类–View:public class View implements Drawable.Callback, KeyEvent.Callback, AccessibilityEventSource { 此处省略一万多行代码。。。。 /*直至一处举世闻名的方法*//** * Implemen.

2021-02-04 10:58:38 348

原创 设计模式--建造者模式

建造者模式建造者模式是我之前有些不理解的模式,直到比着网上的demo抄的时候,也是不太理解的状态。但是当时就这么得过且过下去了,现在回顾过去,我这种学习方式是不行的,不理解,写过demo了就算作学会了?这样显然是不对的。不可以这么凑活下去了。学习这种东西不是做做样子而已。那么我之前不理解的是什么呢?我不理解他的使用场景, 我当时认为直接new一个也挺好的,反正都能完成功能,就行了呗。另外一点是,我感觉还要写一个builder真是麻烦。原因现在也大概清楚了, 就是我之所以这么想,是因为我的工作中暂且没有碰

2021-01-13 16:20:53 110

原创 面向对象原则--依赖倒置原则

依赖倒置原则我写这个自然段的时候,还没有具体的看依赖倒置的含义。也就是不知者,不知者就算理解错了也无罪哈哈。我现在有三个疑问, 何为依赖, 何为倒置(因为我感觉这个名字起得,有点让人不太好理解!), 依赖为何倒置?目前在我看来,依赖关系,是一个对象作为另一个类的某个方法的参数, 那么他俩是依赖关系。 那么倒置是什么含义?与我之前理解的是否有偏差?study…begin何为依赖倒置依赖这里的依赖并不是我之前想的,代码中的依赖关系。而是XXX做成什么事情需要用到ZZZ这种行为的抽象,在这个里面,X

2021-01-12 10:49:40 189 1

原创 20201127 使用Markdown 画uml图,Graphviz 安装经历吐血整理

1 visio code 编辑器,最好有2 visio code markdownlint插件安装上,这个插件可以比visio code自带的markdown预览展示的更好。这个工具是看预览的3 markdown是可以支持 plantuml语言去画各种图的。并且markdownlint插件可以预览部分其形成的图片。但是,只是非常简单的可以预览。例如类图这类复杂的,是会预览失败的。所以你的电脑需要安装另外一个图像相关工具—Graphviz 这家伙的安装,我整个过程中遇到了巨大的坑啊!4 通常 Gr

2020-11-27 14:04:30 798

原创 设计模式--原型模式

文章摘录自:https://www.runoob.com/design-pattern/prototype-pattern.html原型模式全名:Prototype Pattern分类:创建型模式用途:用于创建重复的对象,同时能够保证性能,它提供了一种创建对象的最佳方式。介绍意图:实现对象的拷贝,用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建新的对象。主要解决问题:在运行期间删除和建立原型主要思想:基于现有的对象克隆出一个新的对象出来,一般是有对象的内部提供克隆的方法,通过该方法返

2020-10-16 11:42:36 48

原创 动画移动的相关规律(根据参数判断到底移动到哪里去)

首先了解一下动画世界里面的坐标规则:首先动画的坐标系是以左上角为原点,无论是屏幕的左上角还是布局本身的左上角,反正就是左上角。然后往下来,往右来,数值都是加一。我想看到这里你心里已经默默地比划好了一套正确的坐标系了。绝对坐标很明显是以屏幕左上角为原点,绝对坐标。比如一个布局的左上角在(50, 50),让其移动–> [100, 100]–>[30, 30] 这样的轨迹(简写哈,意...

2019-11-07 21:02:59 220

原创 关于线程 thread (5)线程池

线程池及新特性sun在java5中,对java线程中的类库做了大量的扩展,其中线程池就是java5的新特性之一,除了线程池之外还有很多线多线程相关的内容,为多线程的编程带来了极大的便利,为了编写稳定可靠的多线程程序,线程部分的新增内容显得尤为重要。有关java5线程新特性的内容全部在java.util.concurrent下面,里面包含了数目众多的接口和类,熟悉这部分API特性是一项艰难的学习...

2019-03-22 19:36:46 634

原创 关于线程 thread (4)线程的交互

线程交互的基础知识首先要从java.lang.object的类的三个方法学习void notify():唤醒此对象监视器上等待的单个线程void notifyAll(): 唤醒此监视器上等待的所有线程。void wait():导致当前的线程阻塞等,线程要立马放弃同步代码块被同步对象的锁(目前感觉不合理,可能错了),直到其他线程调用此对象的notify() 或者 notifyAll(). ...

2019-03-22 19:11:33 352

原创 关于线程 thread (3)线程的同步

同步问题的提出。线程同步主要是为了防止多个线程访问同一个数据对象的时候,对数据造成破坏。因为从一开始我们就讲了,线程自身有的资源很少,大部分是和其他线程共享进程中的资源。例如两个线程 A 和 B,都操作同一个对象,并且修改这个对象里面的数据。假设有两个线程,想改同一个字符串的内容。看看会有什么后果。package Thread;public class ThreadDemo2 imple...

2019-03-22 18:13:05 452

原创 关于线程 thread (2)线程的使用简介

线程的创建代码相关一般有两种直接写一个继承自Thread的子类并重写里面的run方法。写一个Runnable, 用的时候作为Thread的初始化参数。 然后创建的时候直接new就行了。/** * 线程的创建示例 */ public void createThread() { //用继承Thread类的那个类 Thread2 thread1 = new Thread2(...

2019-03-22 16:59:28 292

原创 关于线程 thread (1)概念简介

文章参考:Java线程详解,写的很好一 认识线程什么是线程线程是进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的能够独立运行的基本单位。线程自己本身不拥有系统资源,只拥有一点在运行中必不可少的资源(比如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤销另外一个线程,同一进程中的多个线程可以进行并发执行。线程有就绪,阻...

2019-03-22 16:30:23 700

翻译 Android 应用清单简介1

资源文件定义了一个Activity 相关UI 或者一个UI的组成。存在于res/layout文件夹下,其文件名即此文件的id。通常在Java代码中以 R.layout.filename方式引用。语法如下,非常熟悉。<?xml version="1.0" encoding=&qu

2019-03-11 18:51:23 1017

原创 Java Class类的简单用法

对于每一种类,Java虚拟机都会初始化一个Class类型的实例,当我们编译一个新的类就会产生一个Class对象,并且这个Class对象会被保存在同名的.class文件里。当我们new一个对象的时候,或者引用静态变量时,Java虚拟机的类加载器系统会将对应的Class对象加载到JVM中,然后JVM再根据这个Class相关的信息创建我们需要的实例对象或者提供静态变量的引用值。获取class对象及部分...

2019-03-06 18:31:44 1932

翻译 Android developer文档阅读笔记--Animation resource(搞清属性动画,补间动画和播帧动画)

说起动画,大家说有什么属性动画,播帧动画,补间动画。但是其中的区别没有很较真的了解过。既然阅读到了开发文档,就写个文章记录一下。动画种类Android 动画分为3种,1属性动画 property animation,2播帧动画frame animation,3补间动画tween animation 。涉及到的Java类属性动画对应Animator, 通过改动类的对象(view对象)的...

2019-03-01 16:40:00 152

翻译 Android developer 阅读笔记--应用资源概览

编辑文章中的疑问1 R类的原理在android开发的过程中,应当保持良好的习惯,最好就是把与资源文件相关的东西外部化。例如,给TextView设置一个字符串的时候,不是采用直接把指定字符串传入setText()方法的参数中。而是引用String资源文件中的标签。这样假设用户切换了国家语言,这个标签也会根据规则自动的引用相应国家的string 文件,从而完成显示方面的语言切换。这样就可以很好的国...

2019-02-21 22:58:25 271

原创 SwipeMenuRecyclerView 的用法

最近项目里需要一个吊炸天的recyclerview,既可以下拉刷新上拉加载,同时带特效,又可以每个item左右滑动,进行删除或者编辑。就我这渣水平,再给个五年估计也写不出来。于是就在网上搜了一个牛人写的工具。打算用到项目中。他给的关键类就是SwipeMenuRecyclerView。 但是同时也有好多接口。时间短,不可能一下子全搞明白。现在最最最关键的是搞清楚要怎么用!先摘一些下周要用到的功能!...

2018-10-11 07:01:44 6054

原创 ConstraintLayout从0到0.n学习

ConstraintLayout

2018-09-22 18:32:26 1610 2

原创 MAC 下的终端命令 持续更新

列出当前目录的所有直接子目录 sl 进入文件夹 cd 文件夹的绝对路径,或者是文件夹对于当前所在目录的相对路径。 例如 cd mywork (假设当前的所在目录是 /Users/caoyali/) 或者cd /Users/caoyali/mywork 返回上一级目录 cd .. 当前目录 cd . 返回上两级目录 cd ../.. 返回上三级目录 cd ../../.. 从当...

2018-09-09 17:06:16 608

原创 Git 命令 持续更新

git切换账户查看当前git用的用户名: git config user.name 查看当前git用的邮箱: git config user.email 修改用户名: git config –global user.name “Your_username” 修改当前邮箱: git config –global user.email “Your_email”有一点要注意, user...

2018-09-09 16:46:30 225

原创 Http中的request 与 response 到底有些啥

用Charles抓上一个包看看: 请求方面 先看看请求的内容: 再附上一张经过处理分类后的: 响应方面 附上一张更加直观的: 再看看传递的主要内容: 然后这些内容是分了多少段: ...

2018-09-02 23:08:53 330

原创 加密技术简介

参考文章:信息加密技术简介 [浅谈加密技术](https://blog.csdn.net/fanyunda1988/article/details/50897216)加解密简介加解密分类常见的加密技术介绍其余问题,有关于AES 和 RSA 加密技术,对称加密,非对称加密。优点和缺点,以及API会用, 加密的原理。涉及到位运算。让你走一个算法的话你会怎么走? HTTP 和 H...

2018-08-05 21:54:40 13556

原创 Https

https协议与http协议有着相当大的联系。说明白点,https实则就是以安全为目标的http通道。就是http的安全版。本文重点讲的是http与https之间的区别,就是那层加密。https简介https(Hypertext transfer protocol over secure socket layer),是以安全为标准的http通道。在http下加入了ssl层。https协...

2018-08-05 16:37:04 220

空空如也

空空如也

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

TA关注的人

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