![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
笔记
Android开发过程中的笔记
黑马小杰
一只呆比程序员
展开
-
Android 玩转数据库(二)——GreenDao使用记录
题记说点题外话,大概一年半没有用过GreenDao了(甚至于沉溺于JNI海洋的我,连数据库都很少用了),最近换了一份新工作,其中一个老工程引用了GreenDao。由于年事已高,记忆衰退,边查边粘,甚是墨迹,回到家中,整理一二,免得烦恼。废话不说上代码/注释。一. 插件引入1. APP级别的gradle由于我一般会吧Gradle升级成新版本,所以语法形式稍微不一样1.1 添加plugin注意老版本的grale是这个酱紫的。。。apply plugin: 'org.greenrobot.green原创 2020-12-19 14:45:00 · 493 阅读 · 1 评论 -
设计模式——观察者模式(Observer)
不可否认,观察者模式是JDK中使用最多的模式之一。通过了解观察者模式,至少我能够更好的梳理一对多的关系,还有对于松耦合的概念。使用观察者模式,至少我们能够切换对象在运行时是否能够被通知(更新消息等),简单来说,通过观察者模式,让我们对消息的更新更及时。引入一个很常见的案例。现在有一家气象站负责发布气象消息(WeatherData),作为不同的客户,会有不同的对于气象消息的需求,我们也就需要设计一个...原创 2020-12-01 23:32:29 · 8135 阅读 · 1 评论 -
源码分析Activity的创建流程(吐血走完源码流程)
题记为什么突然要想要整理下这玩意呢?最近也在刷些题,概念性的我看到了重复最多字眼就是什么View的创建与加载。但是看了好多的文章,无非就是草草的介绍什么measure → layout → draw。看了一会,感觉如果这么回答的话,基本上稍微学过一点的都能回答出来,秉着这事不可能这么简单的思路,感觉有必从源码的角度梳理一遍,以正其心。因为view跟Activity强相关,xml的加载也是在onCreate里面执行,所以决定从Activiy的创建加载来解剖这个问题。1. 怎么看源码欲善其事必先利其器,此原创 2020-06-22 01:27:48 · 751 阅读 · 0 评论 -
Android代理模式中的那些代码
题记为什么突然会想到整理下代理模式?emm…因为最近头脑风暴了下自己的知识体系,还是对自己代码架构上的东西不够满意。最近梳理的很多知识体系中,反复都提到了代理模式。比如Hook这个玩意真的是令我又爱又恨,其中对动态代理的渗透,让我对这个代码的设计欲罢不能。给篇参考链接:Android插件化原理解析——Hook机制之动态代理。再比如Binder通信,Android 中的AIDL对代理模式的使用也是精彩绝伦。1. 为什么叫代理模式官方解释:一个类代表另一个类的功能。这种类型的设计模式属于结构型模式原创 2020-06-21 12:12:37 · 382 阅读 · 0 评论 -
Android Kotlin学习笔记(Java与Kotlin的单例模式比较)
Java与Kotlin的单例模式比较概念引入1.懒汉式1.1 线程不安全的懒汉式Java下的实现Kotlin下的实现1.1 线程安全的懒汉式Java下的实现kotlin下的实现2.饿汉式Java下的实现Kotlin下的实现3. DCLJava下的实现Kotlin下的实现4. 静态内部类Java下实现Kotlin下实现5. 枚举概念引入Java中最简单的设计模式之一,这种模式保证创建自身类的对象只有一个,可以直接访问其中方法自动创建并获得自身对象,不需要直接实例化。因此,单例模式也是创建者模式的一种。我原创 2020-05-31 23:49:55 · 681 阅读 · 0 评论 -
描述网络连接流程
网络连接流程0.题记仅仅是自己的一个知识梳理,不具有参考价值,简单回忆一下网络连接的流程,督促自己查看一下相关资料。目的做到不仅要心知肚明,还要做到言出有评。大通话,以一次浏览器访问某个网址为例子。(后续要梳理app通过okhttp连接某个网站,然后着重分析下okhttp的底层!)1.域名解析一个关键点:DNS解析,也就域名解析,作用是URL---->IP地址,形象一点就是一个电话簿。下面给出俩个参考链接。网上通篇博客描述的过程其实就是DNS缓存的过程,详情见链接2。简单顺序就是 :原创 2020-05-20 00:48:14 · 1702 阅读 · 0 评论 -
APP框架梳理
题记毕业3年了!犹豫!彷徨!最近处于一个瓶颈期,公司的代码已经得心应手,但是由于业务原因,网络加载和最新的开源库用的较少,感觉少点什么,就想沉下心来整理一个通用的网络加载框架,流行的技术重新刷一遍,本文就记录下关键节点。初步敲定MVP+retrofit+RxJava作为基础,言不多说,开始拼凑~1 MVPMVP的好处不用赘述了,什么业务逻辑与UI分离一类的等等,随便百度一片博客都讲得天花乱...原创 2019-09-01 19:49:28 · 3599 阅读 · 0 评论 -
Android Kotlin学习笔记(一)—— Kotlin Koans
题记正所谓纸上觉来终觉浅,绝知此事要躬行。Kotlin陆陆续续都有在看,但是无奈看了忘,忘了看,痛定思痛,决定重新系统化的整理下学习过程。我是用Android Studio进行Android开发,配置起来很简单,关于环境问题请自行百度。1.资料阅读菜鸟教程:一个很方便的学习网站,支持在线译。Kotlin学习中文网 :如其名,大部分的资料都可以在上面找到。(强烈推荐)2.辅助插件进入正...原创 2019-08-18 20:42:32 · 597 阅读 · 0 评论 -
Android Cmake日常爬坑记录
1.Cmake.txt引用多个.c/.cpp文件。例如:add_library( lib_a STATIC ${CMAKE_CURRENT_SOURCE_DIR}/src/one.c ${CMAKE_CURRENT_SOURCE_DIR}/src/two.c ${CMAKE_CURRENT_SOURCE_D...原创 2019-03-03 19:25:10 · 381 阅读 · 0 评论 -
Android常见Theme风格设置
1.整理下常用的style.xml下的属性设置。<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!--状态栏颜色--> ...原创 2018-06-19 22:00:16 · 618 阅读 · 0 评论 -
Android异步加载(UI刷新)
指切正题,为何要选择异步加载?由于UI线程(也可叫主线程)负责处理用户输入事件(TP事件,显示事件等),直接与用户交互,如果UI线程阻塞,直接会影响用户的体验效果,严重的会报ANR错误。所以我们需要把耗时操作移出主线程,在子线程中进行处理。下面罗列几种实现异步加载的方式。传统JAVA方法实现异步1.继承Thread类代码如下package UseThred;pu...原创 2018-06-01 00:14:15 · 6012 阅读 · 0 评论 -
Android笔记——内存泄露总结
一 什么是内存泄露首先,在Android中我们所说的内存指的是Android系统分配给APP的内存的大小。对于不同的手机型号,对应的的不同ROM所分配的内存大小是不同的。PS:Android手机属于RAM平台。我们的堆栈存储区域就是在RAM中。Android开发中的内存泄露一般指的是堆内存。我们的new出来的object存储在堆内存中,这些内存由GC进行回收管理。所以所谓的内存泄露,就是GC搞不定...原创 2018-05-13 23:55:07 · 333 阅读 · 0 评论 -
关于OO设计的原则
面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。(百度百科)关于OO设计原则,网上众说纷纭,有6大设计原则,也有5大设计原则的说法。暂时先把这些概念...原创 2018-02-25 20:39:06 · 398 阅读 · 0 评论 -
(Android View)底部导航栏—BottomNavigationView简单使用
虽然很早就知道BottomNavigationView,但是以前导航栏都是各种第三方凑合用。既然Android Support Library 25 才增加了BottomNavigationView 控件,就简单看一下使用方法。首先创建一个工程。既然是系统组件,当然创建的时候就可以自动选择,不多说,看图。OK,Activity创建完毕,我们简单看一下代码。public class LanuchAc...原创 2018-03-17 23:00:00 · 15344 阅读 · 2 评论