赞
踩
1、抽象的理解
自己理解抽象:就是这类事物都具备这个功能,但是这个具体内容都不知道,没有足够的信息来描述这个信息,这个类就是抽象类,功能细节无法确定所以就抽象出来就是抽象方法。
抽象类的由来:其实也是不断的向上抽取来的,越往上抽取就越不具体,不具体就出现抽象类,就是每个类的功能都有,但是实现方式不一样
事例:在项目的RollPagerView中定义指示器的方式有好几种(单纯的颜色、图片、文字)三种方式,所以在ShapeHintView中定义了两个抽象方法,makeFocusDrawable(),makeNormalDrawable(),不同的方式实现方式不一致,抽象的用途,父类可以调用子类的方法,所以这个类也必须是抽象的
2、接口的理解
抽象类和接口的异同点:
相同点:
都是不断向上抽取而来的。
不同点:
1,抽象类需要被继承,而且只能单继承。
接口需要被实现,而且可以多实现。
2,抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。
接口中只能定义抽象方法,必须由子类去实现。
3,抽象类的继承,是is a关系,在定义该体系的基本共性内容。
Is a 就是所属关系,什么是什么的一种,
接口的实现是 like a 关系,在定义体系额外功能。
就是举个例子,学员啊学员有学习功能吧,没有抽烟功能,学习是学员的基本功能吧,抽烟不是,抽烟是不是学员的额外功能啊,那些学员抽烟就去实现这个抽烟接口呗
还在我项目的RollPagerView中这三种指示器都需要初始化,都要设置当前的选中的哪一个,所以定义一个接口,initView(),setCurrent()这两个方法,让那三个指示器都去实现不同。
3、在代码中可以使用gradientdrawable来设置渐变
类似于布局文件中的shape
drawable绘制和canvas的学习
http://blog.csdn.net/iispring/article/details/50437731
http://blog.csdn.net/lonelyroamer?viewmode=contents
4、ViewConfiguration.getScaledTouchSlop () 的使用
getScaledTouchSlop是一个距离,表示滑动的时候,手的移动要大于这个距离才开始移动控件。如果小于这个距离就不触发移动控件,如viewpager就是用这个距离来判断用户是否翻页
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0225/907.html
5、android中判断用户是上下滑动还是左右滑可能通过如果x轴的移动距离大于y就是左右,否则就是上下
if (Math.abs(x - mLastMotionX) < Math.abs(y - mLastMotionY))
6、如果知道adapter里面的数据已经更新,通过给adapter注册registerdatasetobserver 这样一个观察者,比如在RollViewPager里面当数据更新的时候要重新初始化指示器的个数
7、36个Android开发常用代码片段
http://www.phpxs.com/code/1001775
8、2015年十大热门Android开源新项目
http://www.jianshu.com/p/aa7238cd8daf
9、Android开发常用的调试工具:leakcanary,BlockCanary,开发者使用的内存清理、Pss监控工具
http://my.oschina.net/liucundong/blog/398547
10、kotlin 中文版的pdf
https://wangjiegulu.gitbooks.io/kotlin-for-android-developers-zh/content/xie_zai_qian_mian.html
11、Android Studio 小技巧合集
http://laobie.github.io/android/2016/02/14/android-studio-tips.html
12、想收集一下Android应用性能调优的技术点
http://zhuanlan.zhihu.com/kaede/20326073
13、java中enum转换为int事例
public static enum DrawMode{
UNKNOWN(0),
AXIS(1),
ARGB(2),
TEXT(3)
private int value = 0;
private DrawMode(int value){
this.value = value;
}
public int value(){
return value;
}
public static DrawMode valueOf(int value){
switch (value){
case 0:
return UNKNOWN;
case 1:
return AXIS;
case 2:
return ARGB;
case 3:
return TEXT;
}
}
}
14、Android中开发的坑
https://github.com/tangqi92/Android-Tips
http://www.lai18.com/content/1518518.html
15、Android在代码中设置字体大小setTextSize
http://qiushao.net/2015/09/14/android%E5%9C%A8%E4%BB%A3%E7%A0%81%E4%B8%AD%E8%AE%BE%E7%BD%AE%E5%AD%97%E4%BD%93%E5%A4%A7%E5%B0%8F
http://blog.csdn.net/lizhenmingdirk/article/details/7349386
16、invalidate与postinvalidate 的区别
http://stackoverflow.com/questions/7596370/what-is-the-difference-between-androids-invalidate-and-postinvalidate-metho
invalidate需要在必须在UIThread更新,postinvalidate 非UIThread的更新操作
17、深入的理解自定义view和invaldate方法
http://blog.csdn.net/guolin_blog/article/details/17045157
http://blog.csdn.net/lmj623565791/article/category/2680591
http://blog.csdn.net/qinjuning/article/details/7110211
http://bbs.9ria.com/thread-230915-1-1.html
http://blog.csdn.net/beyond0525/article/details/48181345
18、Android中paint常用参数的设置
http://blog.csdn.net/wangchangshuai0010/article/details/7336435
19、Andrid内存优化汇总
工具分析
阿里巴巴测试平台 http://mqc.aliyun.com/
内存泄露工具检测leakcanary(https://github.com/square/leakcanary)
BlockCanary是一个Android平台的一个非侵入式的性能监控组件
https://github.com/moduth/blockcanary
腾讯MIG专项测试组开发出来的狂拽酷炫屌炸天的神器
http://gt.tencent.com/index.html
http://bugly.qq.com/
http://www.jianshu.com/p/8b77d394b2a6
技术经验之谈
【MDCC技术大咖秀】Android内存优化之OOM
http://www.csdn.net/article/2015-09-18/2825737/1
胡凯技术博客:http://hukai.me/android-performance-oom/
一个只关注android性能的博客:http://androidperformance.com
http://www.jianshu.com/p/9546d21376ed
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/1216/3778.html
http://bugly.qq.com/bbs/forum.php?mod=viewthread&tid=498
http://rong.logdown.com/posts/314130-android-studio-tools-memory-profiler
http://www.androidchina.net/1963.html
Android性能专项测试之Memory Monitor工具
http://blog.csdn.net/itfootball/article/details/48712595
http://android.jobbole.com/80926/
http://www.devtf.cn/?p=939
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0611/3033.html
19、有意思的 Java 小问题
http://blog.csdn.net/feelang/article/details/49680417
如何获取 Android 设备的CPU核数、时钟频率以及内存大小
http://blog.csdn.net/feelang/article/details/46554095
20、强大的图片加载框架 fresco
“>http://fresco-cn.org/docs/resizing-rotating.html#
21、比较好的学习网站
http://www.androidchina.net/4189.html
22、Android自定义控件合集
http://www.jianshu.com/p/9546d21376ed
23、APK瘦身实践
http://www.androidchina.net/4340.html
24、可以下载源码的博客
http://www.androidchina.net/dev/android_source
http://www.jcodecraeer.com/plus/list.php?tid=31
http://www.mobile-open.com/category/android-experience
泡在网上的日子
http://finalshares.com/ 极分享
http://www.itlanbao.com/code/100710.html IT蓝豹
http://www.javaapk.com/demo javaapk
25、Android里面快速开发框架,react native的专题
http://www.lcode.org
http://blog.csdn.net/developer_jiangqq/article/details/50033453
26、github高级搜索技巧
首先明白github上顶部三个按钮的作用
1.想拷贝别人项目到自己帐号下就fork一下。
2.持续关注别人项目更新就star一下
3.watch是设置接收邮件提醒的。
在github上如何搜索star最多的项目
直接在https://github.com/输入stars:>100
https://github.com/trending能看到本日(周,月,年)热门
https://github.com/explore
github代码搜索技巧
http://blog.sina.com.cn/s/blog_4e60b09d0102vcso.html
另外github还支持高级搜索。甚至还可以搜索用户、问题及代码!
参考:https://help.github.com/articles/searching-github/
https://github.com/search/advanced
27、Android stuio 常用技巧篇、编码技巧篇、调试技巧篇、Android studio 你应该知道的一切
http://mp.weixin.qq.com/s?__biz=MzA4NTQwNDcyMA==&mid=402416974&idx=1&sn=a8fd70a65ff3973758e4a7975c361139#rd
http://mp.weixin.qq.com/s?__biz=MzA4NTQwNDcyMA==&mid=402416974&idx=2&sn=136e2a77c9bdd2cf971143d7f35e57d2#rd
http://mp.weixin.qq.com/s?__biz=MzA4NTQwNDcyMA==&mid=402416974&idx=3&sn=3a0f99a753e7e8372cb98b696542d2cb#rd
http://www.cnblogs.com/smyhvae/p/4390905.html
28、android 不透明度16进制值
100% — FF
95% — F2
90% — E6
85% — D9
80% — CC
75% — BF
70% — B3
65% — A6
60% — 99
55% — 8C
50% — 80
45% — 73
40% — 66
35% — 59
30% — 4D
25% — 40
20% — 33
15% — 26
10% — 1A
5% — 0D
0% — 00
格式如#00FFFFFF,前两位代表不透明度的十六进制。00表示完全透明,FF就是全不透明。依次递增。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。