
Andoid学习笔记
文章平均质量分 67
TouchOfSun
活到老,学到老
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
android 图片上添加文字水印记录贴
Bitmap bmp = BitmapFactory.decodeFile(path).copy(Bitmap.Config.ARGB_8888, true);Canvas canvas = new Canvas(bmp);Paint paint = new Paint();paint.setDither(true);paint.setFilterBitmap(true);int width = bmp.getWidth();int height = bmp.getHeight();Rect.原创 2021-01-27 09:21:48 · 242 阅读 · 0 评论 -
OKHTTP源码解析笔记(一)
OkHttpClient默认为OHC1、OHC配置一些默认设置//第一步获取okHttpClient对象OkHttpClient client = new OkHttpClient.Builder() .cache(new Cache(getCacheDir(),10240*1024)) .connectTimeout(20, TimeUnit.SECO...原创 2019-11-14 09:57:40 · 205 阅读 · 0 评论 -
同进程Activity调用Serivce中函数(学习笔记四)
Activity与Service间通信的代码不是没写过,但是并没有了解过为啥会这样写,先记录一下。首先得先了解一下AMS,AMS是Android中最核心的服务,主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作,其职责与操作系统中的进程管理和调度模块相类似,因此它在Android中非常重要。1、IBinder存在的意义,myActivity和myService是谁来...原创 2019-03-25 20:05:11 · 200 阅读 · 0 评论 -
程序生成器----先写出aidl工具,后定义接口(学习笔记三)
1、Android在C++层是采用模版(template)方式进行开发即先定义接口,再写aidl工具2、Android在Java层是采用程序生成器的方式进行开发即先写出aidl工具,后定义接口1、在客户来前写好模版BinderProxy(),客户来后写IPlayer(接口)2、略过对编码和解码的了解,变得简单范例一:结构如下:...原创 2019-03-25 15:33:32 · 514 阅读 · 0 评论 -
如何写Proxy及Stub类(包装IBinder接口)--学习笔记二
3、包装IBinder接口Proxy及Stub设计模式让App与IBinder接口不再产生高度相依性范例一:原创 2019-03-25 14:26:22 · 361 阅读 · 0 评论 -
AIDL与Proxy--stub设计模式
Aidl与Proxy--stub设计模式(学习笔记一)原创 2019-03-25 11:27:31 · 758 阅读 · 0 评论 -
学习EIT造型-----笔记
如果以车来做比喻:E:引擎----基类I:接口T:轮胎----子类1、基础项-----基类/了类的extends结构示例左面为示例代码,右面为示例代码的UML图代码结构不同,但是其实逻辑是一样的,不同的形式。图一 ...原创 2019-03-19 16:01:37 · 319 阅读 · 0 评论 -
Java-复习继承与多态,绑定
一、继承对理解继承来说,最重要的事情是,知道哪些东西被继承了,或者说,子类从父类那里得到了什么。答案是:所有的东西,所有的父类的成员,包括变量和方法,都成为了子类的成员,除了构造方法。构造方法是父类所独有的,因为它们的名字就是类的名字,所以父类的构造方法在子类中不存在。除此之外,子类继承得到了父类所有的成员。但是得到不等于可以随便使用。每个成员有不同的访问属性,子类继承得到了父类所有的成员...原创 2019-04-01 09:16:48 · 143 阅读 · 0 评论 -
Handler复习笔记--了解源码
Handler作为android入门来讲是相当重要的执行流程其实很简单:首先,当Handler被创建的时候就发送了一个新消息发送至MessageQueue,Looper这个类就开始进行遍历MessageQueue,并从中取出Message,执行Runnable方法。这里面可以看出Looper是一直在进行循环遍历的,也就是死循环,但是...原创 2019-04-04 09:57:11 · 258 阅读 · 0 评论 -
java复习-抽象
一、抽象如下图:Shape类表达的是一种概念,一种共同属性的抽象集合,我们并不希望任何Shape类的对象会被创建出来。那么,我们就应该把这个Shape类定义为抽象的。我们用abstract关键字来定义抽象类。抽象类的作用仅仅是表达接口,而不是具体的实现细节。抽象类中可以存在抽象方法。抽象方法也是使用abstract关键字来修饰。抽象的方法是不完全的,它只是一个方...原创 2019-04-01 13:44:59 · 149 阅读 · 0 评论 -
java-复习异常处理
例子如下:如上图的方式写出代码:这段代码已经做了处理,不会崩溃但是可读性太差,修改起来也费劲。刚入手写程序的时候,就被领导批,代码可读性太差业务逻辑如下:异常机制利用的好处:...原创 2019-04-01 13:57:40 · 159 阅读 · 0 评论 -
双向沟通的Messenger(学习笔记一)
前言1、Messenger的概念和角色ac首先会启动BinderDriver,从线程池中取出线程,然后依次执行Binder()下的函数 ,bt将Msg丢到MQ,然后主线程会把信拿出来处理。2、 Meessenger支持双向沟通 单身传递方式:ac调用Messenger中的IBinder,进而调用 Messen...原创 2019-03-28 16:25:14 · 402 阅读 · 0 评论 -
Spring框架初涉
Spring介绍:Spring Framework为现代基于Java的企业应用程序提供了全面的编程和配置模型 - 在任何类型的部署平台上。Spring的一个关键要素是应用程序级别的基础架构支持:Spring专注于企业应用程序的“管道”,以便团队可以专注于应用程序级业务逻辑,而无需与特定部署环境建立不必要的联系。Spring核心技术:依赖注入,事件,资源,i18n,验证,数据绑定,类...原创 2019-04-03 15:20:25 · 302 阅读 · 0 评论 -
Android网络通信框架-OKHttp源码解析
OkHttp作为现代的Http请求客户端,可以在java或者android使用,有以下特点1、支持SPDY2、连接池,实现Http1.1长连接和http2.0多路复用3、拦截器,内部预置拦截器和自定义拦截器支持,可以往HTTP请求时插入逻辑和职责4、支持GZI和HTTP缓存使用方法:OkHttpClient client = new OkHttpClient();...原创 2019-08-13 20:47:05 · 226 阅读 · 0 评论 -
Android架构
1.应用层:应用是用java语言编写的运行在虚拟机上的程序,比如Email客户端,SMS短消息程序,日历等。2.应用框架层:这一层是编写Google发布的核心应用时所使用的API框架,开发人员同样可以使用这些框架来开发自己的应用,这样便简化了程序开发的结构设计,但是必须要遵守其框架的开发原则。3.系统运行库(C/C++库以及Android运行库)层:当使用An...原创 2019-09-08 21:38:44 · 244 阅读 · 0 评论 -
BufferKnife原理-注解
前言:ButterKnife是一个专注于Android系统的View注入框架,以前总是要写很多findViewById来找到View对象,有了ButterKnife可以很轻松的省去这些步骤。是大神JakeWharton的力作,目前使用很广。最重要的一点,使用ButterKnife对性能基本没有损失,因为ButterKnife用到的注解并不是在运行时反射的,而是在编译的时候生成新的class。项...原创 2019-10-09 10:19:40 · 332 阅读 · 0 评论 -
RxJava学习并理解笔记(一)
作为菜鸟来讲,看了好多的rxjava操作符,弄得我怕怕的,就怕自己坚持不住学习,所以,还是一步步来学习它吧,文章主要是记录一下我学习rxjava的过程。重点:rxjava的观察者模式程序中基于用户的操作,数据的改变等因素,UI都会发生相应的变化rxjava是一种异步变化思想举个例子来说 我在A店买了一件商品B 由快递员C送到我的手上 从rxjava的思想上来看 ...原创 2018-09-06 10:44:46 · 236 阅读 · 0 评论 -
(学习笔记)什么是synchronized?什么是lock?
Lock 也就意味着是并发编程那么什么是并发编程呢?所谓并发编程是指在一台处理器上"同时"处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。Synchronized:在多线程编程中,线程安全问题是一个最为关键的问题,其核心概念就在于正确性,即当多个线程访问某一共享、可变数据时,始终都不会导致数据破坏以及其他不该出现的结果。而所有的并发模式在解决这个问题时,...原创 2018-11-26 20:08:02 · 203 阅读 · 0 评论 -
Webrtc初涉(一) 要入坑喽
前几天领导安排任务以webrtc为基础来实现android端的点对点视频通话,刚开始一脸蒙,虽然最后以官网DEMO实现,但是果然感觉自己还是一阵蒙圈,以此博客来记录一下我的webrtc之行。这是webrtc的官网:https://webrtc.org/首先我的任务目标只是要提供音视频通话的DEMO,所以去官网遍历一圈一、用Google自带的翻译查看它所支持的平台,谷歌浏览器的中文...原创 2018-09-30 13:14:09 · 2898 阅读 · 0 评论 -
并发和并行的区别
前两天工作的时候领导随口问了一句,你知道并发和并行的有什么区别吗?。。。我诚实的回答,不知道并行是什么意思。回来查一下资料: 并发:并发是指多个进程”同时“对共享资源的访问。并发最重要的一点就是进程间在某相同时间段都对资源进行了访问。举例:Linux并发编程并行:对于单核计算机操作系统中的并行,指的是同时存在于内存中的多道作业都处于运行状态。实际上都是宏观上并行,微观上串行,因...原创 2018-12-12 13:19:24 · 269 阅读 · 0 评论 -
优化代码原则--学习笔记
一、单一职责原则总结来说,一个类中应该是一组相关性秀高的函数 、数据的封装。也就是说,这一个类,应该仅有一个引起它变化的原因。以我刚刚写出的发送邮件的一个demo为例private Thread thread = new Thread() { @Override public void run() { try { send1(); protocol(); //handler.sendE原创 2017-06-13 14:35:39 · 311 阅读 · 0 评论