Android学习之路
文章平均质量分 61
自学Android
别急,还差一行代码
放弃不难,但坚持一定很酷!
展开
-
Android 序列化总结
serialVersionUID是用来辅助序列化和反序列化的,它用来标识反序列化的时候,类的结构是否发生了变化。在序列化时,系统会将serialVersionUID也写入序列化文件中,然后反序列化时再用当前类中的serialVersionUID和文件中的serialVersionUID对比,如果两个serialVersionUID相同说明序列化的类的版本和当前的类的版本一样,可以成功反序列化。比如成员变量的数量,类型可能发生了变化,这个时候是不能正常进行反序列化的。二、Parceable。原创 2023-04-14 16:34:02 · 1024 阅读 · 0 评论 -
finalize()与System.gc()
1. finalize()finalize()方法是Object基类的一个方法public class Object{ protected void finalize() throws Throwable{}}Object类并未对其进行实现,从这点其实就可以看出Java是希望我们根据需要在特定时机自己去写他的具体实现。实际上finalize()就是gc前对待回收的对象进行标记,标记成功后会回调此函数。这里需要特别注意,一个对象成为垃圾和它被标记为垃圾中间是存在时间差的,请看下面的代码:publ原创 2022-04-18 21:18:52 · 2305 阅读 · 2 评论 -
Java基础知识——static和final
一、static1. static修饰变量:static修饰的变量属于静态变量,随着类加载直接分配内存,与实例对象无关,所有类共用静态变量(需要考虑作用域,private、public之类);2. static修饰函数:static修饰的函数属于整个类,在类加载的时候就存在且可以被调用;除此之外,static修饰的函数不可以用abstract修饰,必须实现;3. static修饰代码块静态代码块在类构造函数之前就被执行,具体为:父类静态代码块——>子类静态代码块——>父类非静态代码原创 2022-04-02 15:37:47 · 5411 阅读 · 3 评论 -
Java性能优化基础——String类的一些知识点
String类String类本身是个不可变对象,其内部采用private final byte[] value;保存对象的值,所以任何对于String的修改都将重新创建一个新的String对象并将引用指向新对象;虽然从构成上来说确实是不可变对象,但其实可以通过反射来修改值;...原创 2022-04-01 18:37:22 · 232 阅读 · 0 评论 -
Android横竖屏切换及configChanges配置
本篇博客需要Activity生命周期相关知识,如果不了解,参看这篇博客:Android下Activity的生命周期情况一:如果项目默认不配置ConfigChanges属性,进入Activity之后调用:即正常进入Activity调用onCreate()——>onStart()——>onResume()当Activity由竖屏切换到横屏(横屏切换到竖屏与完全一致):即横竖屏切换时Activity调用onPause()——>onStop()——>onSaveInstance原创 2021-05-16 22:42:29 · 1119 阅读 · 3 评论 -
Android开发Bug记录及解决方案(四)——深度学习&CV
开发场景:刚刚开始使用openCV,准备对图像进行灰化处理原创 2019-05-01 22:27:44 · 1185 阅读 · 0 评论 -
Android开发Bug记录及解决方法(一)————综合
报错信息:Program type already present: android.support.v13.view.DragAndDropPermissionsCompat;出错原因:第三方库或者module之间V13支持库冲突了;解决方法:在build.gradle中的dependencies节点下添加如下configurations内容dependencies { con...原创 2019-04-25 16:21:57 · 3237 阅读 · 0 评论 -
Android开发Bug记录及解决方法(三)———GIS相关
报错信息:Error:Execution failed for task ':app:processDebugManifest' ;出错原因:在对一个老项目进行更新时,在build.gradle中对旧版本esri的依赖直接进行了替换,原有依赖下载的文件未删除,两个插件的uses-features一致,导致在Manifest中重复进而引发此问题;解决方法:...原创 2019-04-08 20:57:29 · 2999 阅读 · 0 评论 -
Android下Activity的生命周期
这边博客主要简单的介绍一下Android下Activity的生命周期,主要介绍在整个Activity中各个回调方法调用的时机。onCreate(): activity被创建时调用;onStart():当activity变得可见时调用此方法;onResume():activity正在与用户进行交互时或者说界面获取焦点时调用;onPause():activity不能与用户进行交互或者说界面失...原创 2019-03-23 23:39:03 · 2532 阅读 · 0 评论 -
Android下Fragment的使用
这边博客主要和大家探讨Fragment的使用,Fragment需要依附于Activity,其具体使用方法有两种第一种方式:在xml文件中静态声明,即在程序执行过程中不在对fragment进行切换,使用步骤如下在layout文件夹下新建fragment的布局文件,这里命名为fragment1.xml.<?xml version="1.0" encoding="utf-8"?>...原创 2019-03-23 15:44:25 · 2180 阅读 · 0 评论 -
BottomNavigationView+Fragment实现底部导航栏(包含源码)
这篇文章主要介绍通过fragement+BottomNavigationView实现Android应用底部的导航栏,效果如下图关于fragment使用的详细介绍,大家可以点击这里,原创 2019-03-23 17:35:08 · 5115 阅读 · 6 评论 -
关于bindService()的使用 学习笔记
1.bindService()方法存在的意义在于服务当中会有一些自己定义的函数方法(这也是实际开发中常见情况),其中某些方法会需要上下文环境,如Toast 。此时如果你需要在activity中调用服务的这个方法,那么只能实例化这个服务类,获取到对象,然后通过这个对象进行调用,但实例化过程中服务会丢失其上下文环境(丢失的原因可以这么理解:服务的上下文环境来源于其继承的父类Service,Servi...原创 2018-12-29 18:52:43 · 4929 阅读 · 1 评论 -
通过SharedPreferences/SP实现保存密码 学习笔记
本篇文章将介绍给大家通过SharedPreferences实现一种简单的记住密码的操作先来看一下activity_main.xml布局文件&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/andr原创 2018-11-27 17:44:11 · 1566 阅读 · 0 评论 -
Android下从网络上获取图片的方法 学习笔记
本篇文章将介绍给大家如何在Android下从网络上获取一张图片并显示出来,希望和大家共同学习交流。涉及的知识主要包括:线程开启、Handler消息机制、Bitmap。先来看一下布局文件activity_main. xml&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;&amp;lt;Linear原创 2018-11-27 16:43:22 · 3767 阅读 · 0 评论 -
Material Design实战(一)——常用自定义View
登录页面输入框效果图:原创 2019-05-20 12:24:18 · 1621 阅读 · 0 评论 -
基于Java从零开始实现设计模式(一)——单例模式
1.单例模式(singleton):每个类只允许一个实例,提供一个全局的访问点,即通过将其构造方法设计为private类型,使其无法通过new方法拿到其实例,只能通过类中定义的get方法拿到类的实例。1.1:fina式1.1.1 第一步:私有构造1.1.2 第二步:定义公有静态成员类package designPattern;public class Demo01_SingletonF...原创 2019-04-27 20:22:37 · 2887 阅读 · 0 评论 -
Android网络通信——Volley框架使用
1.Volley到底有哪些特点?1.1 自动调度网络请求1.2 多个并发的网络连接1.3 通过使用标准的HTTP缓存机制保持磁盘和内存响应的一致1.4 支持请求优先级1.5 支持取消请求的强大API,可以取消单个请求或多个1.6 易于定制1.7 健壮性:便于正确的更新UI和获取数据1.8 包含调试和追踪工具2. Volley中的RequestQueue 和 Request2.1...原创 2019-04-28 20:01:44 · 2591 阅读 · 0 评论 -
intent-filter匹配规则,是时候了解一波了
一个intent-filter中action、category、data的数量均可超过一个,在进行匹配时,可以理解为这些aciton、category、data会随机组合,只要匹配其中一组即可,换言之,只要intent中的action、category、data均在intent-filter中即可;intent-filter在一个Activity中可以存在多个,进行匹配时,只需要完全匹配...原创 2019-04-27 19:54:57 · 3032 阅读 · 0 评论 -
Support Annotation Library的介绍
Support Annotation Library是一个函数库,主要用于对代码进行注解,准确的说应该是对参数和函数返回值进行注解,以参数为例,当调用者传入的参数与注解要求的参数类型不一致时,程序在编译时就会直接报错,便于及时修正错误,使用这个函数库需要添加如下依赖:implementation 'com.android.support:support-annotations:28.0.0'...原创 2019-04-27 16:41:39 · 1723 阅读 · 0 评论 -
深入代码层面理解Android下View绘制流程(一)——Measure
这篇博客主要和大家深入探讨一下Android下View的绘制流程,首先来看一下Android下时间的三种响应方法1.原创 2019-03-24 11:57:56 · 2768 阅读 · 0 评论 -
Android中关于standard、singleTop、singleTask、singleInstance四种启动模式
这篇博客和大家共同探讨一下Android下四种启动模式的介绍,先介绍一点相关知识首先启动模式是针对activity的,在AndroidManifest.xml文件中application节点下,activity节点中进行配置launchMode属性,其次android系统会对每个APP维护一个任务栈(后进先出),默认情况下,每启动一个activity都会将其入栈。1.standard模式:st...原创 2018-12-20 20:46:42 · 3790 阅读 · 0 评论