学习自定义View的一篇文章:https://www.jianshu.c...6e5cec4863
一篇关于前端React框架学习的中文文档:https://doc.react-chi...react.html
前端学习连接:http://www.layui.com/
前端的一些控件:http://dev.dcloud.net.cn/mui/ui/
学习前端的网站:http://www.runoob.com...orial.html
多渠道,多环境打包:https://www.jianshu.c...2dc6f89cb4
记录一个问题:listView多条目的时候,type必须从0开始,不然可能会有问题
CoordinatorLayout AppBarLayout 结合下拉刷新 上拉加载更多 的滑动冲突解决:https://blog.csdn.net...s/51144295
解决RecycleView的item展示不全的问题:LayoutInflater.from(mContext).inflate(R.layout.item_nei_communite_layout,parent, false);
RecycleView条目显示不全,使用的布局填充方式: View.inflate(mContext,R.layout.item_homeland_disclose, null)或者inflator.inflat
关于视频的一个连接:https://mp.weixin.qq....scene=0#rd
一篇关于coordinatorlayout的文章https://blog.csdn.net...s/51918773
listView的item的高度:设置了80dp却不生效,设置minHeight即可。原因:当你用自定义的layout文件手动来inflate的时候最外层的高度值和宽度值都是无效的,这是API实现方式的问题。在给每个item设置shape的时候也遇到这个问题,padding值不生效。
解决弹出软键盘的时候会把底部按钮顶上去的问题:在setContentView前面添加:getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
比较系统的学习自定义控件的连接:https://www.jianshu.c...6db48fd2b9
关于自定义控件的总结:https://blog.csdn.net...m=referral
侧滑:https://yuqirong.me/2...%E6%9E%9C/
一篇解决viewpager缓存fragment导致无法刷新fragment的文章:https://mp.weixin.qq....scene=0#rd
友盟统计埋点,一篇详细文章:http://dev.umeng.com/...ntegration
拍照相关的连接:https://github.com/yanzhenjie/Album
关于使用友盟统计的一篇详细的文章:https://blog.csdn.net...s/79742288
https://github.com/ya...ecycleView
一篇关于volley自定义请求的连接:可以自定义request返回的结果为Gson对象,类似于retrofit直接返回对象::https://blog.csdn.net...s/17612763
Glide.with(cxt).load(imgGlfUrl).asGif()//作为gif还是bitmap,如果加载的是一张gif,但是我们设置为asBitmap,那么只会加载一帧.diskCacheStrategy(DiskCacheStrategy.SOURCE)//如果加载gif图速度太慢,那么我们设置为只缓存原型图:source
Android Acp,是用来动态申请权限的
在子线程弹吐司:1.runonUITHread 2.handler.post 3.looper.prepare lo0per.loop
https://www.jianshu.c...0f8e2b4e7f
https://www.jianshu.c...db81cbc438
一个程序员必备的网站:http://www.jikedaohang.com/
凡是4大组件,如果是自己new的,则不具备组件的能力,只是一个普通的类
谷歌规定,只要是四大组件,除了广播之外,都不允许自己new,必须系统创建,比如service,只要是自己new的,虽然也是继承自上下文,但是这个上下文不能够使用,只能是系统创建的才可以当做上下文只用
动画分为3中:帧动画,gif;补间动画;属性动画
style样式:如果是很多地方都用到了同样的东西,比如颜色,大小等,那么我们就可以抽取为style,统一管理,以后也好维护,如果很多style都用到了某些属性,那么我们可以抽取一个parent Style 主题:引用的也是style 区别:style作用于布局文件,一般是在控件中引用;主题一般作用于清单文件,一般是在application或者activity中引用
数据库下的事务(SQlite数据库):有些时候执行的过程中会报错,有可能报错前执行了一部分,报错后执行了一部分,这样数据会出问题,所以我们用事务来保证,这段代码全部执行成功才可以,如果中途出了错,则这段代码不会生效
编译java文件为.class文件,打包成.dex文件,打包资源文件,清单文件以及dex文件为apk,安装
DVM,JVM虚拟机 DVM是专门针对低配置,小型设备的虚拟机 JVM java-.class-.jar;DVM java-.class-.dex-apk; DVM运行的是dex文件 JVM:基于栈的架构,因为变量什么的要压栈,弹栈;;;;DVM基于寄存器的架构,可以理解为变量直接放CPU了
android体系结构:
第4层(最底层)android操作糸统使用的内核是linux,负责硬件管理;比如键盘,wifi,相机,音频等 第三层为底层类库:用C语言写的,还有DVM(android使用的虚拟机,java使用的是JVM), 第二层为开发框架,也就是api,为开发提供api。eg:定位,等 第一层为各种应用程序,也就是用户使用的app
解决线程安全的问题:同步锁,同步方法,同步代码块,锁必须是同一把,不然的话无效
如果我们没有在Activity的configChanges属性中指定以上选项的话,当配置发生改变的时候都会导致重新创建Activity,,eg:screenSize|keyboardHidden|orientation
git提交远程的时候报错以R开头:因为我们操作了某些文件,但是git没有感知到。 解决方法:根据git报错的地方创建空文件,提交,提交成功之后删除空文件,再次提交
Gradle自动配置版本号以及修改apk命名的一篇文章
gradle中配置版本号的一篇文章https://www.cnblogs.c...72530.html
集合去重:1.可以使用LinkedHashSet,唯一,并且可以保证插入顺序和遍历顺序一致 2.可以使用两个集合a,b;遍历b集合,如果a集合不包含则添加进去,这样最多遍历b.size()次;
1.Set集合无序,唯一 2.LinkedHashSet:依然没有下标,但是能够保证插入顺序和遍历顺序一致
Map集合:键不能重复,如果键重复,那么值会覆盖 Map集合:以键取值,如果键值对不存在,则为null,而不是空 Map集合:LinkedHashMap,虽然没有下标,但是能够保证插入顺序和遍历顺序一致
1.String类型对象,变量拼接:每次都会开辟新的空间 常量拼接:不会开辟新的空间,只是常量的一个处理eg:abc==ab+c 2.String类型对象是不可变的:每次拼接都会生成新的堆空间,每个字符串的地址是不会变得
equals方法 1. 相等判断 两个对象内容上是否一样 2. ==用来比较变量中的地址是否一样,不是比较内容 a.对于基本数据类型,地址一样,值一样;值一样,地址也一样 b.对于引用数据类型,地址一样,值一样;值一样,地址不一定一样 3. 基本数据类型仍然可以使用==,而引用数据类型不能使用==
记录一个bug:Intent.FLAG_ACTIVITY_REORDER_TO_FRONT的含义是,当接收Intent的Activity处于非destroy状态,那么接收Intent的Activity就会被置于栈顶。但是使用这种方式启动activity在android版本大于7.0的时候,会出现只是打开了原界面,不会刷新界面,如果需要刷新那么不能使用该方式打开
进出页面的动画://出入动画 WindowManager.LayoutParams params = getWindow().getAttributes(); params.windowAnimations = R.style.enterandentrance; getWindow().setAttributes(params);
一像素进程保活:https://www.jianshu.c...4a9531bc15
提升为前台服务,却不显示通知栏的一篇文章:http://blog.csdn.net/...s/50669420
程序保活的一篇文章:http://blog.csdn.net/...s/53141113
第一次进入页面让EditText失去焦点,默认不谈粗键盘,让其父项获取焦点默认: android:focusable="true" android:focusableInTouchMode="true"
checkBox适配三星:用android:button="@null" android:drawableLeft="@drawable/check_box_button_selector" android:drawablePadding="4dp" android:paddingLeft="0dp"来替换android:paddingLeft="4dp" android:button="@drawable/check_box_button_blue_selector"这两行实现左边checkBox右边5字
List data = new Gson().fromJson(array.toString(), new TypeToken>() {}.getType());
文件路径:通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据 SD卡路径也就是文件管理器的根目录:Environment.getExternalStorageDirectory().getAbsolutePath() + "/" +"AqunMsg/"+ fileName
list和json互相转换 List list = gson.fromJson(jsondata, new TypeToken>() {}.getType()); String str = gson.toJson(list);
android:selectAllOnFocus="true"
一篇可以很好理解RxJava的文章:http://gank.io/post/5...者,抛物线
图标网站:http://www.iconfont.c...on&q=clear
1.通过shape绘制图片 2.通过DrawableWrap改变图片颜色 3.矢量图(http://editor.method....量图vector
一个封装了很多工具的依赖库:https://github.com/didi/DoraemonKit
网友评论