![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android个人学习笔记
文章平均质量分 73
Rlusia
安逸乃万恶之源
展开
-
Android规范摘记
Android规范摘记命名规范四种命名规范: 1、Pascal命名法: 首字母大写,如类的名字MyAsyncTaskActivity 2、Camel命名法: 首字母小写,后面都大写,在自定义方法中使用,如private void getName(){} 3、匈牙利命名法: 首字母为属性名,如自定义成员变量,private String strMyName ;(或者mMyName)原创 2016-07-13 17:57:07 · 332 阅读 · 0 评论 -
AIDL学习笔记
简介最近重温了下开发艺术探索里面的IPC机制,对于AIDL做下笔记使用时,客户端定义AIDL接口方法package com.lpc.aidltest;// Declare any non-default types here with import statementsimport com.lpc.aidltest.Book;interface IBookInterface ...原创 2018-03-13 00:26:03 · 231 阅读 · 0 评论 -
Java对象实例化过程
Java对象初始化过程 参考自 http://blog.csdn.net/wang_1997/article/details/52266954先声明对象:class Student { String name = "Alice";//显示初始化 int age = 18; //显示初始化 public Student() { name...原创 2018-03-13 11:25:39 · 2684 阅读 · 0 评论 -
Java 中的栈-Stack类源码解读
Stack继承自Vector,实现了栈元素的基本操作,最典型的就是push压栈和pop出栈,整个Stack.java的代码很简单:public class Stack<E> extends Vector<E> { public Stack() { } /** * 压入一个元素入栈,实际就是调用Vector的addElement方法...原创 2018-04-09 02:22:34 · 1674 阅读 · 0 评论 -
Activity启动
根Activity启动App安装时,PMS会解析AndroidManifest.xml,拿到组件信息。Launcher从PMS中拿到action为android.intent.action.MAIN并且category为android.intent.category.LAUNCHER的Activity信息并为他们创建桌面图标。<activity android:name=".Main...原创 2018-03-26 23:59:47 · 177 阅读 · 0 评论 -
WebView 使用Android 原生ToolBar
WebView 使用Android 原生ToolBar前言在使用 WebView 加载 H5 页面的时候,很多H5页面会有自己的标题栏,然而原生APP中也会有自己的标题栏。很多应用为保证标题栏风格与原生应用统一,或者保证返回键的使用能自由控制,选择使用原生的 ToolBar 来作为页面的标题栏。使用原生标题栏要解决的问题为避免出现两个标题栏,需要隐藏H5自带的标题栏;原...原创 2018-06-06 17:39:25 · 1508 阅读 · 0 评论 -
Kotlin空安全最佳实践
Kotlin 空安全最佳实践前言Kotlin 语言在设计时,重点关注了Java 的空指针异常(NullPointerException,简称NPE),然而在使用时,由于NPE出现的原因及其多样化,对应的处理方式也有很多种,很多时候单靠一个variable != null不能优雅地解决所有问题,在不同场合,我们可以通过不同的方式,来简化书写,明确语义。Kotlin 产生 NPE ...原创 2018-07-05 11:30:57 · 1006 阅读 · 0 评论 -
从源码追踪OkHttp的请求流程
从实际使用开始OKHttp请求分为同步和异步,同步写法和异步写法分别如下:OkHttpClient client = new OkHttpClient();Request request = new Request.Builder().url("http://www.baidu.com").build();Call call =client.newCall(request);//...原创 2018-03-15 15:56:20 · 202 阅读 · 0 评论 -
Bitmap和OOM笔记
Bitmap获取宽高Bitmap获取宽高有2种方式,第一种是直接将Bitmap加载进内存中,然后通过测量拿到宽高。private void getBitmapWH() { Bitmap bitmap = BitmapFactory.decodeFile("file/img.jpg"); int width = bitmap.getWidth(); int heigh...原创 2018-03-08 23:05:54 · 224 阅读 · 0 评论 -
Activity启动模式
Activity的启动模式Activity有4中启动模式,standard、singleTop、singleTask、singleInstance,可以通过AndroidManifest里面activity标签下的launchMode来设置,或者在代码中通过Intent的Flag参数来设置。standardstandard是默认的启动方式,每次启动Activity都会创建一个新的实例。...原创 2018-03-08 20:52:55 · 188 阅读 · 0 评论 -
Volley框架的学习
在学习郭霖前辈的博客(http://blog.csdn.net/guolin_blog/article/details/17482095)后自己做的简要学习笔记,为的是提炼下思路,在心里能有个整体的框架。 由浅入深: 一、StringRequest使用步骤: 1、定义消息队列:RequestQueue; 2、定义StringRequest,传入网址,监听方法等; 3、用队列加载请求(add原创 2016-07-13 20:32:06 · 368 阅读 · 0 评论 -
学习过程中的好文章收集
Java基础部分Java排序算法: http://blog.csdn.net/zhanggang740/article/details/50145793Java集合: http://blog.csdn.net/softwave/article/details/4166598/#commentsJava设计模式–工厂方法: http://blog.csdn.net/andydreaming/ar原创 2016-07-13 21:21:00 · 447 阅读 · 0 评论 -
Android Fragment + ViewPager +LazyLoad的应用
最近看到一篇微信文章,讲的是ViewPager + Fragment的懒加载。博主以前也遇到过这样的问题,要在APP启动的时候判断从网络获取的一个字段,来确定是否隐藏一个列表的item,当时直接在主Activity里获取字段,然后设置item显示状态,结果发现每次服务器动态改变字段后,APP根本不按照字段来显示/隐藏item,打log后发现在进入APP的时候,ViewPager的预加载属性在捣鬼,主原创 2016-07-18 21:06:35 · 1253 阅读 · 0 评论 -
Android蓝牙使用(一)
Android通过BluetoothAdapter来检测蓝牙状态,打开或关闭蓝牙,扫描蓝牙并得到蓝牙信息等功能。 在使用时,通过BluetoothAdapter.getDefaultAdapter()方法来获取系统的BluetoothAdapter,如果系统支持蓝牙则会返回实例,如果不支持,则返回空;写个简单的demo来看看吧:先在MainActivity.class 中定义BluetoothAd原创 2017-04-05 13:51:06 · 1369 阅读 · 0 评论 -
retrofit 2.3.0 接入和使用
前言开门见山,本文记录了如何接入并使用square出品的retrofit网络框架。一、准备工作添加retrofit 的依赖(或直接使用jar包)这边并不能直接连接网络,所以直接下载jar包并使用了添加okio依赖或引用jar包 添加jar包之后,还要添加okio的jar包,不然会报错java.lang.NoClassFoundError:okio.Buffer添加converter-gso原创 2017-05-18 22:34:52 · 1298 阅读 · 0 评论 -
Java基础(一)
(一) java基础知识点java中==和equals和hashCode的区别答:对于Java基本类型,== 判断的是值,对于对象,==判断的是对象地址,一般情况下,equals和==一样, 因为对象的equals方法直接就是判断是否==,也是判断的对象引用地址。 public boolean equals(Object obj) { return (this =...原创 2018-03-07 00:39:19 · 219 阅读 · 0 评论 -
Android消息机制源码简析
简介Android应用程序通过消息驱动,在线程间的通信中,通过Handler、Looper、MessageQueue来实现消息的传递和处理。在使用时,一般我们会用Handler handler = new Handler(); 在当前线程(一般是UI线程)创建一个Handler对象; 然后,通过在其他线程里使用handler.sendMessage(message) 来发送消息给当前线程...原创 2018-02-27 23:33:09 · 443 阅读 · 0 评论 -
Java线程同步笔记
线程同步多线程情况下,当一个线程使用某一资源时,其他线程无法同时使用此资源,直到当前线程释放对资源的占用。例如A线程使用对象X时,其他线程都无法操作X,直到A线程使用完毕。 https://www.cnblogs.com/XHJT/p/3897440.html实现方式:1、通过synchronized关键字修饰方法或者代码块://同步普通方法//同步静态方法时,...原创 2018-03-08 01:07:10 · 259 阅读 · 1 评论 -
Java基础(二)
Java基础(二)1、哪些情况下的对象会被垃圾回收机制处理掉?讲一下常见编码方式?utf-8编码中的中文占几个字节;int型几个字节?静态代理和动态代理的区别,什么场景使用?Java的异常体系谈谈你对解析与分派的认识。修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法 ##?J...原创 2018-03-08 11:52:48 · 603 阅读 · 0 评论 -
Android PathClassLoader 和 DexClassLoader 区别之源码分析
前言一般说起 PathClassLoader 和 DexClassLoader ,大家都会说,前者只能加载内存中已经安装的apk中的dex,而后者可以加载sd卡中的apk/jar ,因此 DexClassLoader 是热修复和插件化的基础。但是具体为什么DexClassLoader能加载sd卡中的类,很多文章都只是一笔带过 ,于是研究了下源码,做个记录。【注意】本文所参考的源码基于And...原创 2018-08-14 16:22:29 · 5129 阅读 · 5 评论