- 博客(73)
- 资源 (1)
- 收藏
- 关注
原创 Android的开发之&java数据结构和算法
/** * 数据结构的特点 * * 数据结构 优点 缺点 * 数组 插入快,如果知道下标,可以非常快的存取 查找慢,删除慢,大小固定 * 有序数组 比无序的数组查找快
2021-03-16 14:07:20
210
原创 android进阶(十二)-----Android Bitmap和Cache
一、Bitmap的高效加载BitmapFactory类提供了四种方法:decodeFile、decodeResource、decodeStream和decodeByteArray,分别用于支持从文件系统、资源、输入流以及字节数组加载一个Bitmap对象。如何高效加载Bitmap,那就是采用BitmapFactory.Options来加载所需的图片,通过BitmapFactory.Opt...
2020-04-17 18:20:49
253
原创 android进阶(十一)-----Android线程和线程池
线程分为主线程和子线程,主线程主要处理和界面相关的事情,而子线程则用于执行耗时操作。android找那个线程有很多种实现方式:AsyncTask、IntentService、HandlerThread。AsyncTask封装了线程池和Handler,主要为了方便开发者在子线程中更新UIHandlerThread是具有消息循环的线程,内部可以使用HandlerIntentServic...
2020-04-14 13:26:51
263
原创 android进阶(十)-----Android消息机制
android消息机制主要是指Handler的运行机制,Handler的运行需要底层的MessageQueue和Looper的支撑。一、android消息机制概述Handler创建时采用当前线程的Lopper来构建内部的消息循环,如果当前线程没有Lopper,就会报错。Handler创建完成后,内部的Looper以及MessageQueue就可以和Handler协同工作了,通过Hand...
2020-04-10 10:48:51
170
原创 android进阶(九)-----Android四大组件的工作过程
一、四大组件的运行状态android四大组件中国除了BroadcastReceiver以外,其他三种都必须在AndroidManifest中注册,对于BroadcastReceiver既可以在AndroidManifest中注册也可以通过代码注册。在调用方式上,activity、service和BroadcastReceiver需要借助Intent,而ContentProvider则无须借...
2020-04-09 13:43:47
153
原创 android进阶(八)-----Android中的window和windowManager
一、Window和WindowManager1、为了分析Window的工作机制,我们先了解一下如何使用WindowManager添加一个Window。示例代码:Button btn = new Button(this);btn.setText("button");LayoutParams lp = new WindowManager.LayoutParams(LayoutPa...
2020-01-13 15:22:08
328
原创 android进阶(七)-----Android动画深入分析
android动画分三种:补间动画、帧动画和属性动画。下面我们一一说明一、补间动画:支持四种动画效果,分别是位移动画(TranslateAnimation)、缩放动画(ScaleAnimation)、旋转动画(RotateAnimation)和透明度动画(AlphaAnimation)。这四种动画既可以通过XML来定义,也可以通过代码动态创建,建议使用XML定义。示例代码:&...
2020-01-09 11:39:47
176
原创 android进阶(六)-----Android Drawable
一、Drawable简介Drawable一般通过XML来定义,Drawable是一个抽象类,是所有Drawable的基类。二、Drawable分类1、BitmapDrawable:表示一张图片,开发中,可以直接引用原始的图片,但是也可以通过XML来描述它。例如:<?xml version="1.0" encoding="utf-8"><bitmapxml...
2019-12-30 09:57:16
198
原创 android进阶(五)-----理解RemoteViews
一、RemoteView的应用RemoteView主要用在通知栏和桌面小部件的开发1、RemoteView在通知栏上的应用(1)使用系统默认的样式弹出一个通知栏,代码实例:Notification notification = new Notification();notification.icon = R.drawable.ic_launcher;notificatio...
2019-12-26 11:32:13
462
原创 android进阶(四)-----View的工作原理
前言:好久没有发博客了,一直加班加到吐血,也是没谁了,最近也是互联网寒冬期,各大厂也都在裁员,提高自己才是正道啊。一、ViewRoot和DecorViewViewRoot对对应于ViewRootImpl类,他是连接WindowManager和DecorView的纽带,View的三大流程都是通过ViewRoot来完成的。View的绘制流程是从ViewRoot的performTr...
2019-12-25 14:17:04
155
原创 android进阶(三)-----View事件分发机制及冲突解决
一、View基础知识 1、view的位置参数view的位置由四个顶点决定的,分别是对应view的四个属性:top:左上角纵坐标left:左上角横坐标right:右下角横坐标bottom:右下角纵坐标android中的X轴和Y轴的正方向分别是右边和下边从android3.0开始,View增加了几个额外的参数:x、y、translationX、translati...
2018-09-10 11:36:45
288
原创 android进阶(二)-----android_IPC机制
一:IPC简介android中使用多进程通过给四大组件指定android:process属性,也可以通过JNI在native层去fork一个新的进程进程名以“:”开头的进程属于当前应用的私有进程,不以“:”开头的进程属于全局进程使用多进程造成的问题:静态成员和单例模式失效线程同步失效SharedPreferences的可靠性下降Application会被多次创建 ...
2018-09-07 09:37:45
223
原创 android apk上架各大商店规则
1、腾讯应用宝腾讯开放平台地址:http://open.qq.com注册开发者帐号地址:https://ssl.zc.qq.com/v3/index-chs.html注册开发者帐号方法:http://wiki.open.qq.com/wiki/%E6%B3%A8%E5%86%8C%E5%BC%80%E5%8F%91%E8%80%85%E5%B8%90%E5%8F%B7应用...
2018-09-05 16:27:03
4237
原创 android进阶(一)-----activity的生命周期和启动模式
一、activity生命周期oncreate:表示activity正在被创建。可以做一些初始化UI的工作onstart:表示正在被启动,activity已经可见了,但还没有出现在前台,无法和用户交互onresume:activity可见,并且可以和用户交互onpause:表示activity正在停止onstop:表示activity暂停,此时被新activity覆盖onre...
2018-09-04 18:13:43
238
原创 Android的开发之&字符串反转(七种方法)
一:递归public static String test1(String str){ if (!TextUtils.isEmpty(str)){ int length= str.length(); String left=str.substring(0,length/2);//abcd ab String right=str.s...
2018-08-30 16:59:08
1657
原创 android开发之&android中的swift,kotlin高级部分(十)
/** * 类型检查与类型转换 */open class Person(name:String,age:Int){ val name: String = name val age: Int = age fun printPersonInformation() = println("Hi,I am a Person")}class Student(name: St...
2018-08-30 09:47:35
992
原创 android开发之&android中的swift,kotlin高阶函数和Lambda表达式(九)
/** * 高阶函数:接受一个参数是函数类型的函数,或者返回一个函数类型的值,就可以称为高阶函数 */fun main(args: Array<String>) { val cc = arrayOf(5,4,3) //{it>3}是一个Lambda表达式,作为filter函数唯一的也是最后一个参数,所以调用可以省略圆括号,it代表array中的 /...
2018-08-29 09:51:28
1063
原创 android开发之&android中的swift,kotlin中的函数(八)
/** * 函数定义和使用 * 在 kotlin 中用关键字 fun 声明函数: */fun main(args: Array<String>) { val sum1 = sum(1,2,3,5,100) println(sum1) //一旦定义成可变参数,调用时可以给一个对应类型的数组,数组名前加一个星号(*) //因为sum函数要求函数类型...
2018-08-28 09:22:03
1054
原创 android开发之&android中的swift,kotlin集合(七)
/** * Array数组 */fun main(args: Array<String>) { var nollstations = arrayOf("嘉定北","徐家汇","南翔","桃浦新村","徐家汇","上海西站","罗山路","迪士尼" ,"嘉定新城",
2018-08-27 09:42:27
1255
原创 android开发之&android中的swift,kotlin中多姿多彩的类(六)
/** * 数据类 */data class Leaf(val size:String,val color:String,val shape:String,val vein:Int)fun main(args: Array<String>) { val myleaf = Leaf("30","green","circle",57) val lsize = m...
2018-08-24 09:14:22
1083
原创 android开发之&android中的swift,kotlin类和接口(五)
今天我们来看kotlin中的类和接口,内容有kotlin对象、构造方法、属性、继承,接口、抽象类,修饰符和扩展函数首先我们先来说一下修饰符/** * 修饰符 * open:是否可被继承 * final:是否可被覆盖 * 接口和抽象类是不同的,接口可以把属性和方法进行抽象化,不对其进行具体的赋值和实现,而非抽象类是不可以的 * 接口默认是加上open修饰符的,不需要手动添加 *...
2018-08-23 09:14:55
1187
原创 android开发之&android中的swift,kotlin基础语法(四)
对字符串和字符的操作 var courseName = "谷歌发布TensorFlow Lite,苹果不甘示弱祭出Core ML" var title2 = "谷歌发布TensorFlow Lite,Apple不甘示弱祭出Core ML" println(courseName.count()) println(courseName.isEmpty()) pri...
2018-08-22 10:59:43
1166
原创 android开发之&android中的swift,kotlin基础语法(三)
控制流if表达式:Kotlin 中,if 是表达式,它可以返回一个值。是除了condition ? then : else)之外的唯一一个三元表达式var max = 1 if (max < 2){ max = 2 }else{ max = 3 } //if作为表达式 var max2 = if (2 &g...
2018-08-21 13:09:54
1261
原创 android开发之&android中的swift,kotlin基础语法(二)
整数型和类型推断/** * 数字类型 * 类型名 含义 位数 * Long 长整型 64 * Int 整数 32 * Short 短整数 ...
2018-08-20 16:33:40
1393
原创 java.lang.IllegalStateException: Required DataBindingComponent is null in class FragmentPersonalCen
java.lang.IllegalStateException: Required DataBindingComponent is null in class FragmentPersonalCenterBinding. A BindingAdapter in classcool_enterprise.zhixing.com.classcool_enterprise.utils.DataBind...
2018-08-16 10:26:57
3924
原创 NestedScrollView内嵌套RecyclerView,卡顿并且页面不再顶部解决方法
先说一下NestedScrollView嵌套RecyclerView卡顿解决办法:只需要设置recyclerView的一个属性就可以了,recyclerView.setNestedScrollingEnabled(false);文档上对这个属性的解释是:Enable or disable nested scrolling for this view.If this property i...
2018-08-16 10:25:56
9527
2
原创 kotlin中使用dataBinding展示图片
在java中使用dataBinding展示图片很简单,只需要配置一个静态的BindingAdapter就可以了。如图:在kotlin中使用:首先:kotlin中没有static关键字,但是提供了companion object{}代码块和使用object关键字object关键字声明一种特殊的类,这个类只有一个实例,因此看起来整个类就好像是一个对象一样,这里把类声明时的class关键...
2018-08-16 10:24:35
3184
8
原创 android开发之&数据的加密解密
目录:一:加解密简介二:数据加密技术分类三:常见的加解密算法 一:加解密简介加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。加密技术包括两个元素:算法和密钥。算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解密的一种算法。在安全保密中,...
2018-07-25 15:15:42
1995
原创 mac平台下android apk反编译
android反编译需要三件神器:Apktool:下载地址 https://ibotpeaches.github.io/Apktool/install/dex2jar:下载地址 https://sourceforge.net/projects/dex2jar/jd-gui: 下载地址 http://jd.benow.ca/Apktool 按照图中步骤下载即可,下载完成后:(1)使用...
2018-07-11 11:33:36
1380
原创 SharedPreferences 工具类------可存储图片
今天分享一个自己一直在使用SharedPreferences工具类,几乎可以满足开发中的全部需求了。/** * SharedPreferences 工具类 * */public class SPUtils { /** * 将图片保存到SharedPreferences * @param context * @param preference * @param key ...
2018-07-05 11:55:28
1415
原创 Gradle sync failed: This Gradle plugin requires a newer IDE able to request IDE model level 3. For A
这几天刚下载了android studio3.0,发现3.0里面又好多坑,占用内存也很大,无奈任务比较近,今天又下载了android studio2.3.3,导入项目后遇到一个问题:Gradle sync failed: This Gradle plugin requires a newer IDE able to request IDE model level 3. For Android St...
2018-06-12 14:18:33
3556
原创 解决android studio卡顿,提升studio运行速度
mac版本:点击Finder,在应用程序中找到android studio----->Contents文件夹----->bin文件夹----->studio.vmoptions文件。如图以文本形式打开studio.vmoptions文件,会看到如下图将前三个值改大一些,保存并退出文件,重启android studio即可。window版本:找到android studio安装路径...
2018-06-11 10:18:29
7998
1
原创 android面试题之&java面试题
1.Java中反射的作用是什么?什么时候会用到JAVA反射机制是在运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类; 在运行时构造任意一个类的对象; 在运行时判断任意一个类所具有的成员变量和方法; 在...
2018-06-06 16:14:06
2969
原创 You need to use a Theme.AppCompat theme (or descendant) with the design library
今天遇到一个奇葩的问题,在使用android design控件FloatingActionButton的时候报错了,报错内容如下:Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library. ...
2018-06-06 10:17:35
3570
3
原创 Android的开发之&论网络加载框架(Android-async-http,afinal,xUtils,Volley,okhttp,Retrofit)的特点和优缺点
说到网络框架,就不得不提一下HTTP,TCP,UDP,Socket,本篇文章介绍了android主流网络框架(Android-async-http,afinal,xUtils,Volley,okhttp,Retrofit)的特点和优势以及HTTP,TCP,UDP,Socket的特点
2018-06-05 10:17:34
5124
原创 Android的开发之&论图片加载Glide、Fresco、Picasso、ImageLoader特点和优缺点
Glide图片加载框架一、简介:Glide是一款谷歌官方推荐使用的强大图片加载框架,作者是bumptech,这个库被广泛运用在google的开源项目中。二、功能特点:1、图片异步加载,设置加载尺寸,设置加载动画,设置加载中和加载失败的图片,加载的图片格式丰富:JPG,PNG,GIF,WEBP 支持设置缩略图 2、加载的图片路径多种:网络 本地 资源 assets等3、缓存特点:跳过内存缓存,...
2018-05-31 09:23:44
3997
原创 Android的开发之&java23中设计模式------策略模式
策略模式 是指对一系列的算法定义,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。抽象策略角色: 策略类,通常由一个接口或者抽象类实现。具体策略角色:包装了相关的算法和行为。环境角色:持有一个策略类的引用,最终给客户端调用。应用场景:1、 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。
2018-05-21 17:06:55
1219
原创 Android的开发之&java23中设计模式------模板方法模式
public abstract class AbstractPerson { //抽象类定义整体流程骨架 public void prepareGotoSchool(){ dressUp(); eatBreakfast(); takeThings(); } //以下是不同子类根据自身特性完成的具体步骤 pro
2018-05-21 16:46:55
1186
原创 Android的开发之&java23中设计模式------迭代子模式
public abstract class Aggregate { /** * 工厂方法,创建相应迭代子对象的接口 * @return */ public abstract Iterator createIterator();}public class ConcreateAggregate extends Aggregate { privat
2018-05-21 16:45:12
1236
原创 Android的开发之&java23中设计模式------命令模式
public class Receiver { public void action(){ System.out.print("command"); }}/** * Created by Administrator on 2017-10-11. * 命令接口 */public interface Command { public void exe
2018-05-21 16:41:54
1199
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人