Android Tech And Thoughts.

Android Tech And Thoughts.

Recording myself sometimes helping others

Common Guide
Quick StartCategories: Part0: OSPart1: JavaSE 位运算与最佳实践 字符编码的前世今生 抽象类与接口的本质联系与区别 Java Exception Generic Programming JVM 内存结构与 GC 机制 Part2.JVM JVM内存结构与GC机制 ClassLoading 字节码执行引擎 程序编译 代码优化 Part3.AndroidSE View流程 View自定义 All About Fragment RecyclerView的实现以及定制 View的滑动与源码实现 触摸反馈 Binder机制 常见的IPC方式 Andr...
Android Studio common shortcut key and adb cmd
AS 常用快捷键自动导入类: alt + enter 返回上一页: ctrl + alt + <- 显示方法实现: ctrl + alt + B 显示可重写方法: ctrl + O 自动包装异常代码: ctrl + alt + T 寻找错误: F2 全局查找: ctrl + shift + f 源码中查找类: ctrl + N 删除无用包: ctrl...
Basic music theory
基本乐理1.什么是音简单来说,音是由物体的振动产生的. 相信大家在初中物理都学过的音的三要素 响度 音调 音色 响度取决于振动物体的震动幅度 ; 音调 主要取决于振动物体的频率 ; 音色 主要取决于振动物体所产生的波形. 对于第三点,如果不理解的话,可以看下图: 从音到音律我们已经知道音是什么了,那么音和音律有什么关系?
Gradle Leaning
本文主要参考温哥的Blog,作为一些自己的学习笔记,在学习的过程中,可能会有一些自己的总结,或者对原文的提炼,所以建议自行阅读 Gemiwen 大佬的 Blog,这里附上原文地址 Gemini’s story Gradle Builds Everything - 基础概念本文是从撰写Gradle Plugin的角度,希望把Gradle体系的一些基础结构讲明白 首先我们能应该明白,gradle的工作是把所有的构建动作管理起来—任务是否应该执行,什么时候执行,执行某个任务前先做些什么事情,某几个动作是否可以并行执行。 什么是任务一个任务我们可以理解为把一次指定的输入,转换成想要的输出。比如...
Android Native DataBase
使用Room将数据保存到本地数据库Room时Google官方提供的数据库ORM(Object Relational Mapping)框架,使用起来非常方便。Room在SQLite上提供了一个抽象层,以便利用SQLite的全部功能的同时能更加流畅地访问数据库。 处理大量结构化数据的应用可极大地受益于在本地保留的这些数据,最常见的用例是缓存相关数据,这样当设备无法访问网络时,用户仍然可以在离线状态下浏览相应内容。设备之后重新链接到网络后,用户发起的所有内容更改都会同步到服务器。 注意,在Android中使用Room,请在应用的 build.gradle 文件中声明 Room 依赖项。 Ro...
Learnning Regex
为什么要学习regex呢,其实是因为有点想做一些自己的东西,把自己学到的并发和数据结构算法的一些知识运用起来,一来挺有趣,天天写Android有点觉得太重复化了,二来可以巩固自己所学。而regex正是做东西的第一步,涉及到网络上爬取内容来进行分析,用到regex可以事半功倍,它主要就是处理字符串的,当然,平常我们说到的一些邮箱验证,手机验证也是休要用到regex的。 话不多说,这篇文章就是学习过程中的一些笔记,主要来自于Github上一个开源项目,文末也有注明,大家想学的可以自行观看。 首先,什么是正则表达式? 正则表达式是由一组字母和符号组成的特殊文本,它可以用来从文本中找出满足你...
一些想法
财富: 之前看过中国工程师承接国外的外包项目,可以利用信息差来赚点零花钱,不过有很多需要注意的地方,慢慢完善 开一家烧烤店的启动资金20万左右,但是直接做很容易亏,网上很多人建议先在路边摆那种烧烤摊,积累一定经验再做不迟。很有道理,当然,这个得先攒钱,是很远的事情了。开的话会选在学校里开,可以打造好个人ip,把味道做好,服务做好,这两点比较关键。在没有万全的准备下,不要轻易启动,资金要计算好,包括流动资金,以备不时之需。 [营销手段](如何经营一家烧烤店? - 李舟的回答 - 知乎https://www.zhihu.com/question/31490420/answer/740723...
Java Concurrency - Learning core Java
中断中断线程在Java的早期版本中,stop方法可以终止某个线程,但是现在已被弃用。没有强制线程终止的办法,然而,interrupt方法可以用来请求终止线程。 中断状态是每一个线程都具有的boolean标志。每个线程都应该不时地检查这个标志,以判断线程是否被中断。而interrupt方法则会将线程的中断状态置位,所以interrupt方法可以用来请求终止线程,注意,是请求,而非要求。 1while(!Thread.currentThread().isInterrupted() && more work todo){2 do more work;3} ...
Android Profile Learing
如果应用响应速度慢,动画播放不流畅,卡顿崩溃或者及其耗电,则表示其性能差。要避免出现这些性能问题,往往需要借助工具来分析确定哪方面的资源(例如CPU、内存、显卡、网络和设备电池)的利用率低下 注意: 分析应用时。您应该停用 Instant Run,使用Instant run会轻微影响性能,而更新方法时则会产生稍大的影响。这种性能影响会干扰性能分析工具提供的信息。此外,使用此功能时生成的存根方法会使堆栈轨迹变得很复杂 Android Studio工具 Hierarchy Viewer: 分析布局 Android Profile :提供了 CPU、Memory、Network和电池相关...