王家兴,男,90后草根站长,技术宅,有时间就晚上出去跑跑步 目前的博客,除了一些笔记,其它全部原创输出,就当自己瞎写吧,反正前期也没指望有人看。 爱逛技术社区,看书,王者荣耀,美剧《硅谷》 主要擅长Android应用开发,但目前还没达到高级工程师级别,正在向这个目标努力。
什么是Activity? 与用户交互的接口,提供用户触摸,点击,滑动的界面。Android中的activity全都归属于task管理 。task 是多个 activity 的集合,这些 activity 按照启动顺序排队存入一个栈(即“back stack”)。
/** * 四字节转int,适用于低位在前,高位在后 * @param bytes * @param index * @return */ public static int getIn...
为什么要了解引用? 如果想进行内存优化或理解内存分配就必须先知道这个。 强引用(StrongReference) 用得最普遍的引用,如果一个对象具有强引用,那垃圾回收器绝不会回收它。
线程基础知识 线程状态 线程状态 线程可以有如下6中状态 New(新创建) Runable(可运行) Blocked(被阻塞) Waiting(等待) Timed waiting(计时等待) Terminated(被终止) 可调用用getState()方法获取当前状态 新创建线程 比如new Thread(r),该线程还没有开始运行,意味着它的状态为new。
View的事件机制 为什么会有事件分发机制? 安卓上面的View是树形结构的,View可能会重叠在一起,当我们点击的地方有多个View都可以响应的时候,这个点击事件应该给谁呢?为了解决这个问题,就有了事件分发机制。
NDK开发的两种方式 ndk-build 形式:Android Studio 2.2之前的模式,通过.mk后缀文件里面的内容编译C,C++代码 CMake 形式: CLion C/C++编辑器; AS2.
构建环境 android{ dataBinding{ enabled = true } } 数据绑定布局文件 上面data标签里声明数据变量,数据类...
概括地说软件生命周期由软件定义,软件开发和软件维护三个时期组成,而每个时期又分为若干个阶段。 软件生命周期的6个阶段及基本任务是: 1.问题的定义及规划 此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性 2.需求分析 在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。
树 基本术语 结点 结点的度:拥有子树的个数 叶子结点:度为0 分支结点:度不为0 孩子,双亲和兄弟 结点的层数 树的深度 树的度:表示树中各结点度的最大值 有序树和无序树:各子树从左到右是有次序的 森林:表示m颗互不相交的树的集合 二叉树 定义 度不...
网上关于Dagger2的博客很多,但自己还是觉得大多都讲得稀里糊涂,大多只讲了怎么用,但始终是没怎么讲其内部实现流程,懒得搜博客,干脆直接看源码。 简单的一个应用 首先从一个最最简单的例子开始 一个user类,在其构造方法加个Inject注解,功能相当...
工欲善其事,必先利其器 以下是我开发中或生活中用的个人觉得比较好的工具软件,一款好用的工具,往往能事半功倍 PostMan(ChromeApp) 一个可以模拟实现HTTP get和post的请求工具,方面设置请求参数和查看响应结果。
1.我们觉得放松的大学四年,正是美国学生最努力拼搏的四年。 2
VectorDrawable 1,基本了解Android L开始提供了新的API VectorDrawable 可以使用SVG类型的资源,也就是矢量图。在xml文件中的标签是 例:这是AS里Martial Icon里的一个图标 android:fi...
一,What is MaterialEditText? AppCompat v21 使我们在APP中使用Material Design EditText很容易,但是限制太多,所以,一群牛人做了这个符合MaterialDesign的EditText组件,它是继承EditText的,我们可以很方便的用它。