学习
安卓程序员_谢伟光
知善知恶是良知,为善去恶是格物。
展开
-
stash 使用
使用场景:1.当你代码写一半,没提交的时候,突然想切个分支.2.当你本地代码不是最新的时候,这时候想提交一笔代码可以通过stash先暂存当前代码,然后做且分支或者 拉取远程分支的代码然后再把stash中的代码还原回来,者之间如果有冲突就解决冲突,然后就可以提交最新代码了具体操作如下:先把要暂存的代码 add一下.git add .然后暂存到stash中.git stash save "暂存内容的描述信息"然后同步服务器代码.git pull orig...原创 2020-06-08 12:54:14 · 2088 阅读 · 1 评论 -
git 同步远程代码
git fetch orgin 将远程所有代码记录到FETCH_HEAD文件中之后会看到很多冲突文件,然后告诉你那一笔的merge失败了然后git status 看看有哪些冲突文件git log 找到这一笔提交git reset --hard 到这笔提交再看一眼 git status发现有2个文件没有commit这个没关系直接git pull...原创 2020-04-15 11:47:58 · 2382 阅读 · 0 评论 -
Linux 命令之文件查找
我要找一个文件的绝对路径比如在project 目录下要找test.java,命令如下find project -name test.java //解析命令: find 查找的文件路径 -name 目标文件名我要查找 哪些文件用了我这个文件如下命令grep -rn "test" project/ -rn 可以看成是 -r 和-...原创 2020-04-02 14:49:08 · 160 阅读 · 0 评论 -
git 打patch 过程
通过history 可以查看打命令记录比如我要再3f3f5a2721301c47099b21691ae865b6cacbea97 这个提交+之前7次提交=8次提交,那就生成8个patchgit format-patch 3f3f5a2721301c47099b21691ae865b6cacbea97 -8-8表示几次提交记录分别是1.patch 2.patch.......一...原创 2020-03-23 20:00:45 · 390 阅读 · 0 评论 -
let apply with run
let源码@kotlin.internal.InlineOnly public inline fun <T, R> T.let(block: (T) -> R): R = block(this)解析:从源码let函数的结构来看它是只有一个lambda函数块block作为参数的函数,调用T类型对象的let函数,则该对象为函数的参数。在函数块内可以通过 it 指代该对...原创 2019-10-24 17:16:19 · 122 阅读 · 0 评论 -
布局渲染流程和原理 学习笔记
手机CPU 处理的任务繁多,出了逻辑计算以外还要做内存管理,显示操作,因此 在实际运算的时候性能会大打折扣,在没有GPU的时代,运算速度根本上今天负责三维游戏要求,即使CPU工作频率超过2GHZ,对他绘制的图形提高也不大,这是GPU设计出来了。黄色的 Control 为控制器,用于协调控制整个 CPU 的运行,包括取出指令、控制其他模块的运行等;绿色的 ALU ( Arithmetic...原创 2019-03-24 19:01:15 · 403 阅读 · 0 评论 -
静态内部类写单例的好处
以前写单例这样的public class Demo { private static Demo instance; private Demo() {} public static Demo getInstance() { if (instance == null) { synchronized (Demo.class) { ...原创 2019-03-22 15:57:20 · 2523 阅读 · 2 评论 -
关于学习的心态
最近一直再忙于学习,不学就空虚。很慌。每天晚上散步的时候就想学点东西。因为走路不方便看东西,我就把最近网上免费下载的安卓视频拿出来听,偶尔看看手机,看看代码。我这么好学的原因也是有些偶然。首先,喜欢打游戏,最近哪个游戏被策划改的不好玩了,所以,没了打游戏乐趣。其次,最近合伙买了个安卓高级开发系列课。一想着学会以后可以拿高薪就有点小兴奋。第三,随着生活开支增加,我竟然做梦都梦到我再不努力就完蛋了...原创 2019-03-27 14:16:51 · 1642 阅读 · 0 评论 -
快捷键整理(长期更新)
重新学了下快捷键,并且补充了自己喜欢的快捷键,原文:https://www.open-open.com/lib/view/open1458715872710.html下面做了记录并实验打开折叠代码快Ctrl + Shift + “+”/”-“(Windows/Linux);对比剪切板右键Compare With Clipboard隐藏所有面板Ctrl + S...原创 2019-04-01 11:48:31 · 371 阅读 · 0 评论 -
自定义 editText下划线
看了下网上代码:我想要的效果如下图下划线和文字有15dp的间距 eeeeee的颜色上代码,<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item...原创 2019-03-29 11:01:57 · 1304 阅读 · 1 评论 -
compileDebugKotlin 解决方案之一(api错用导致的重复引用)
首先先补下 依赖的知识 ,依赖可以用2种方式implementation和 api,举例场景app 依赖 bModule , bModule依赖cModule使用implementation: app能引用bModule中的方法和类 app不能引用cModule中的方法 这样的好处是提高编译效率使用 api :app既可以引用bModule的方法和类又可以引用cM...原创 2019-04-03 10:42:56 · 2541 阅读 · 0 评论 -
fragment的 onresume 和onhidden区别
如果是一个activity的多个fragment切换 只会调用 fragment的onhidden如果是多个activity之间的切换 只会调用fragment的onresume原创 2019-05-09 15:45:21 · 324 阅读 · 0 评论 -
关于java中和kotlin中的 == ,===,equals 比较
java首先要分引用基本数据类型和引用数据类型基本数据类型一共八个,其他的像 String 类 Date 都是引用数据类型也称复合数据类型基本数据类型如下:byte 8位short 16位int 32位long 64位char16位这5个都可以归为整数类型,我之前一直记不住,现在按照这个顺序从少到多 记就记住了小数类型2个float 32位lon...原创 2019-02-18 15:13:56 · 2489 阅读 · 2 评论 -
一些正能量的句子,让我激动的想抄一遍(小时候就特别喜欢抄优美的句子)
当你想做成一件事情,并且朝着这个方面不断地努力,发展自己的能力,你就会吸引来自四面八方的能量帮助你,直到你达到目标.穷人一般都是一天天地熬着日子,下班后多一点努力都不会付出多一点脑经都不想动,看到别人努力赚钱总觉得别人太辛苦,一定会过劳死,身体不好有钱有什么用云云.一直暗示自己是个穷鬼就会永远穷下去如果我们生活中都是一些很大,很重要的事情,可能我们根本没有时间去想那些小事.正是因为我们生活...原创 2019-02-18 09:34:26 · 432 阅读 · 0 评论 -
进程 线程
进程定义 :一段程序的执行过程。他有自己的地址空间,包括文本区域 ,数据区域和对战,文本区域存储执行的代码,数据区域存储变量和进程执行期间使用的动态分配的内存,对战存储活动过程中调用的指令和本地 变量。进程3状态: 1.就绪,获得了cpu的所有资源明知要处理器分配资源就可以马上执行; 2.运行态,获得了处理器分配的资源,程序执行中 ...原创 2018-08-17 15:18:44 · 78 阅读 · 0 评论 -
dragger2学习
在gradle添加依赖 compile 'com.google.dagger:dagger:2.11-rc2' annotationProcessor 'com.google.dagger:dagger-compiler:2.11-rc2' 注解 用法 @Module Modules类里面的方法专门提供依赖,所以我们定义一个类,用@Module注解,这样...原创 2018-09-25 17:49:21 · 589 阅读 · 0 评论 -
安卓native崩溃处理
当安卓调用native方法崩溃的时候,一般是不会直接给出代码错误的地方,而是报一个内存地址,而且光看locat是不能直接拿到地址,这时候就需要借助breakpad来获取崩溃日志 ,demo我已经上传到githubhttps://github.com/13701719653/breakpadDemo/tree/master/Chapter01-master先加载一个breakpad的modu...原创 2018-12-21 17:31:07 · 1755 阅读 · 0 评论 -
ubuntu 虚拟机 安装教程及系统使用(学习总结)
1.安装ubuntu 操作系统安装 到https://www.ubuntu.com/download/desktop 他有2个选项,随便选一个vmware 下载https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html然后配置vmware新建虚拟机 然后 选典型->稍...原创 2018-12-17 18:03:38 · 459 阅读 · 0 评论 -
git学习笔记
先用git log 查看提交历史revert 和reset的区别:reset是回退到某个版本 这个版本之后的记录全删除,虽然删除了,但是只要记住最近一次的代码历史纪录,用reset,又能跳回去revert是通过反做 创建一个新的版本,这个版本和目标版本相反,就是相当于那个版本的代码没提交的状态,目标版本之后的提交记录全部保留,这种其实没啥用。我想要的是跳到某个版本,再那个版本做...原创 2018-12-24 10:50:07 · 101 阅读 · 0 评论 -
崩溃解决的思路
要考虑的方面:机型,系统,厂商,cpu,ABI,LINUX ,是否root ,是不是模拟器 内存信息的读取:1系统剩余内存:/proc/meminfo 2应用使用内存:包括java内存,RSS(Resident Set Size)PSS(Proportional Set Size)PSS 和RSS通过/proc/selt/smap计算3虚拟内存:/proc/self/s...原创 2019-01-03 14:17:05 · 262 阅读 · 0 评论 -
volatile的作用及理解
被volatile 修饰的变量 不存在原子性 ,因为他的读操作和写操作是分开的,所以并不是线程安全的. 必须同时满足下面两个条件才能保证在并发环境的线程安全: (1)对变量的写操作不依赖于当前值。比方说 i++ 就会失效 但是 q= b+1 ;b用volatile 修饰就没事 (2)该变量没有包含在具有其他变量的不变式中。比如int a = 0...原创 2019-01-14 16:17:16 · 142 阅读 · 0 评论 -
java8新特性学习笔记
1.接口中的static方法不能被继承,也不能被实现类调用,只能被自身调用,但是静态变量会被继承 ,实现类可以直接调用接口中的default方法,default方法被继承时,可以被子接口覆写,如果一个类实现了多个接口,且这些接口中无继承关系,这些接口中若有相同的(同名,同参数)的default方法,则接口实现类会报错,接口实现类必须通过特殊语法指定该实现类要实现那个接口的default方法 ...原创 2019-01-16 09:03:39 · 537 阅读 · 0 评论 -
效率-------摘自最近看的一本书
1.找到适合自己的有效时间,睡眠时间进行质量管理,健身,选择合适的食物.我吃肉会感觉困顿,所以以后中午都不吃肉了.现在都流行早睡早起,以后11点上床就扔手机,坚决不打开.早上定8点起床吧2.管理自己的生活节奏,从而管理好自己的精力早上起来健身,上午做最难的事情,下午做需要仔细思考的工作,晚上做不用动脑的事情3.每天5分钟,做好日程管理有什么要做的通通写到日程上,昨晚就花掉,...原创 2019-02-15 10:41:34 · 109 阅读 · 0 评论 -
读《刻意练习》
漫无目的的重复性练习,是不会提高水平的在做事的时候给自己下一个小目标,比如 ,在早上的接下里40分钟里面不上厕所,不看qq,专注干活;今天晚上多走500米。有目的的练习 主要是积小胜为大, 积跬步以至千里。定义明确的具体目标可以有效的用于引导你的练习今天我们就在这里完成突破,我不会错过这次突破的机会,不是吗?当然不会,这将是转折的时候想要取得进步,必须完全把注意力集中在你的任...原创 2018-08-15 14:33:17 · 112 阅读 · 0 评论