5 zhoushenxian

尚未进行身份认证

我是一个菜鸟android开发工程师,目前从事电视端开发

等级
TA的排名 1k+

Kotlin入门简介

Kotlin是一门可以运行在Java虚拟机,浏览器,Android上的静态语言,与Java100%兼容,所以Kotlin可以做后台 前端 android,这是要全栈的节凑,学习Kotlin最好的资料:https://kotlinlang.org/docs/reference/basic-syntax.html官网是最权威的,英文不好的,请备注好翻译.Kotlin的程序入口在...

2019-09-04 21:40:27

android组件化 APT高级用法javaPoet

什么是JavaPoet,就是APT+javaPoet =超级利刃javaPoet是square公司推出的开源代码生成框架,提供api生成.java 源文件,这个框架功能非常实用,也是我们习惯的面向对象oop思想 可以很方便的使用它根据注解生成代码 通过这种自动化生成代码的方式 可以让我们更加简洁优雅的方式来替代复杂的工作它的github地址javaPoet它的官网有很多例子 可以跟...

2019-09-03 00:30:08

Android组件化APT使用与介绍

针对上篇讲的module之间的跳转问题, 这就出现了路由的概念了,应该上路由去帮助我们去做那些事APT(Annatotion Processing Tool)是一种处理注解的工具,它对源代码文件进行检测找出其中的注解(Annotation) 根据注解自动生成代码,如果想要自定义的注解处理器能够正常运行,必须要通过APT工具进行处理,也可以这么理解, 只有通过APT工具后,程序在编译期间注...

2019-09-03 00:29:26

android组件化项目部署

组件化的好处分模块打包 测试 统一版本管理 组件化可以不互相依赖,但可以互相交互,任意组合,高度结偶phone module:新建出可以独立运行的模块 apply plugin: 'com.android.application'它是有applicationId: "com.example.gradle"lib module:新建出不可以可以独立运行的模块app...

2019-09-03 00:27:20

android 组件化gradle语法

Android项目中都有build.gradle文件,其实这是gradle构建工具,gradle是由Groovy语言开发的,之前只是把简单的语法学习了下,由于要找工作 没时间学习了,如果能找到工作 上班后再学习,也有可能这辈子就离开it了,Gradle核心是基于Groovy脚本语言的,Groovy脚本是基于java意思是它完全的兼容jvm,而且还在此基础上做了扩展,因此Gradle需要jdk和...

2019-09-03 00:25:33

android. 长图加载

长图加载要用到一个关键的类BitmapRegionDecoder,长图加载会使用到bitmap内存复用, 比如view大小是440*654,图片的宽高是440*12000,那么这个时候就要获取图片的宽和高, 跟view的宽和高进行对比,获取到一个缩小比例,那么会得到宽一个比例,高一个比例,用大的比例作为缩放因子,然后配合手势滑动滑动长图import android.content.Conte...

2019-08-25 21:01:40

android. 使用stetho调试数据库

facebook的stetho,调试网络或者查看数据库或其他真实很方便,而且引入这个库也很简单第一步:implementation 'com.facebook.stetho:stetho:1.5.0'最新版是1.5.1第二步:初始化在application或者activity中public class MyApp extends Application { @O...

2019-08-19 13:31:06

java基础面试题 String,Stringbuffer,Stringbuilder三者的区别

1 StringString:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的查看它的源码 public String() { this.value = "".value; }变量value private final char value[];被final修饰的类不能有子类,被final修饰的变量只能在...

2019-07-24 07:25:16

java 享元设计模式

定义:提供了减少对象数量从而改善应用所需的对象结构的方式java String类就是使用了享元设计模式 还有数据库连接池等缺点关注内部或者外部结构,关于线程安全的问题使系统 逻辑结构复杂化内部状态不随外界变化而变化的外部状态会随外界变化而发生变化的比如计算公司有几个部门 每个部门有多少人public class Department { p...

2019-07-24 05:03:02

java 组合设计模式

定义:将对象组合成树结构以表示 部分-整体 的层次结构组合模式使客户端对单个对象和组合对象保持一致的处理方式在android中View和View和ViewGroup就是使用了组合模式下面就看看View和ViewGroup的架构View是没有addView()添加子view的操作,而ViewGroup是可以添加子view的,View.javapublic class ...

2019-07-24 05:02:53

android tint使用

tint主要是针对图片进行变色,比如有一个条目点击后右边的小三角行图片变色,获取很常用就是筛选点击后图片变色,使用tint减少了设计师的压力,还有就是我们也少使用图片这样就减少了apk的大小<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android....

2019-07-19 21:53:13

android 谈谈invalidate和postInvalidate方法的区别

看这二个方法的区别只有深入到代码中去看了,首先看invalidate()方法invalidate()分析 public void invalidate() { invalidate(true); }然后到 void invalidateInternal(int l, int t, int r, int b, boolean invalidateCache...

2019-07-16 07:10:57

android 面试题 谈谈主线程一直循环 为什么不会出现阻塞或者ANR异常

在ActivityThread类中的main方法有段代码: ActivityThread thread = new ActivityThread(); thread.attach(false, startSeq); if (sMainThreadHandler == null) { sMainThreadHandler = thre...

2019-07-16 05:52:14

android 面试题 Parcelable与Serializable区别

一、序列化与反序列化由于在系统底层,数据的传输形式是简单的字节序列形式传递,即在底层,系统不认识对象,只认识字节序列,而为了达到进程通讯的目的,需要先将数据序列化,而序列化就是将对象转化字节序列的过程。相反地,当字节序列被运到相应的进程的时候,进程为了识别这些数据,就要将其反序列化,即把字节序列转化为对象。有了以上理解,接下来我们认识两个用于序列化和反序列化的接口:java原生的Seriali...

2019-07-16 05:32:22

性能优化之 线程优化

线程调度原理在任意时刻,只有一个线程占用cpu,处于运行状态,在多线程并发的情况下,轮流使用CPU的使用权,但是现在是多核的时代, 比如现在很多电脑或者手机是8核的,意思是有8个cpu,让这8个cpu去执行任务,如果是执行任务很多的情况下,cpu是轮流的方式去执行任务的,而这个CPU去执行任务是由cpu去负责调度的,线程调度模型线程调度模型有二类第一类:分时调度第二类: 抢占...

2019-07-16 04:25:26

android 面试题谈谈transient关键字

我们知道在Java中只要实现了Serializable接口,这个都可以被序列化,在Android中进行序列化还有一种方式, 就是Parcelable,而且比Java提供的序列话方式性能更高,但是在实际的开发中我们有些类虽然实现了Serializable接口,但是里面的有些属性不想进行序列化,这个时候就可以在这个变量的前面添加transient修饰了,class Rectangle imp...

2019-07-16 03:02:36

android 面试题 谈谈深拷贝和浅拷贝

对称拷贝就是将一个对象的属性拷贝到另一个类有着相同类类型的对象中浅拷贝浅拷贝就是按位拷贝对象,它会创建一个新的对象,这个对象有着原始对象属性值的一份精确拷贝,如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址值,因此如果其中一个对象改变了这个地址就会影响其他的对象用demo来测试下public class ShallowCopyTest { ...

2019-07-16 02:38:23

android 面试题 集合类

java集合类主要由二个根接口派生的,Collection和MapCollection派生的类的结构List集合主要有ArrayList,Vector LinkedList Stack(栈)Vector:已经废弃了,因为它是线程安全 导致效率变慢,ArrayList:底层是由数组组成的,它的读插入和删除速度慢,时间复杂度都是O(n) 但是它的读取元素的效率高 时间复杂度为O(...

2019-07-16 00:19:02

Java 非对称加密介绍

秘钥对:公钥和私钥非对称:公钥加密私钥解密 私钥加密公钥解密公钥互换:二个组织或者个人最典型的非对称加密是RSA,它的加密级别很高,但是加密速度是很慢...

2019-07-15 03:34:46

java DES加密解密

package thread;import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESKeySpec;import java.security.SecureRandom;public class ...

2019-07-13 09:49:17

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。