技术文章整理 + 心得
来源:互联网 发布:中国网络明星于凯微博 编辑:程序博客网 时间:2024/06/06 01:24
Android Studio 调试
断点调试
http://blog.csdn.net/yy1300326388/article/details/46501871
- 其中的“跨断点调试”应为“恢复项目”;
- 学会灵活运用“设置变量的值”功能;
TraceView 性能分析
https://bxbxbai.github.io/2014/10/25/use-trace-view/
- 最重要的两个参数是 Calls + Recur Calls / Total 和 Cpu Time / Call;
- 在开始追踪的地方加入 Debug.startMethodTracing(“name”);,在停止追踪的地方加入 Debug.stopMethodTracing();,即可生成用于 TraceView 分析的 debug 文件;
Android 新特性
Android 8 新特性
https://zhuanlan.zhihu.com/p/26409511
通知渠道,画中画模式,自适应图标,固定快捷方式和小部件….
Android 性能
Android 中 RelativeLayout 和 LinearLayout 的性能分析
http://www.jianshu.com/p/8a7d059da746
- RelativeLayout 默认执行两次 onMeasure:因为 View 有可能在横纵方向存在交叉引用(A 横方向依赖 B,B 纵方向依赖 A);
- LinearLayout 默认执行一次 onMeasure;如果使用 weight 属性,则执行两次 onMeasure,即非 weight 属性先 onMeasure 一次,剩下的长度再分配给 weight 属性;
- 尽量使用 padding 代替 margin;
- 复杂的 View 嵌套结构对性能的影响更大;
Android 代码质量
SonarQube
https://www.sonarqube.org/
代码质量管理平台;
Android 插件化
Android 插件化入门
http://www.jianshu.com/p/b6d0586aab9f
Android 插件化的作用:
- 解决方法数超过65535的问题;
- 不同团队负责不同的插件,分工明确;
- 不同模块封装成不同的插件 APK,各个模块可以单独编译,提高开发效率;
- 通过上线新的插件解决线上 bug,实现“热修复”;
- 减小宿主 APK 的体积;
Android Web
Android 代码混淆
https://www.cnblogs.com/renhui/p/5863199.html
http://www.cnblogs.com/renhui/p/5910300.html(Java Annotation)
使用 Js 的 WebView 都要进行代码混淆;
Android 开发技巧
获取当前 Activity 实例对象
http://blog.csdn.net/vfush/article/details/51483436
- 在 MyApplication 内声明公有静态 Activity 对象 sCurrentFrontActivity;
- 在 MyApplication 内重写 onCreate 方法,实现 ActivityLifecycleCallbacks 接口,在 onActivityCreated 和 onActivityResumed 方法中为 sCurrentFrontActivity 赋值为参数 activity;
- 使用时,判断 (MyApplication.sCurrentFrontActivity instanceof 某个 Activity),reture true 则当前 Activity 为那个 Activity;
(不一定是最好的解决方案!)
Android 屏幕适配:最全面的解决方案
https://www.jianshu.com/p/ec5a1a30694b
仅收藏,暂无研究的动力;
Android 常见错误
java.util.ConcurrentModificationException
http://blog.csdn.net/aaawqqq/article/details/43884623
出现原因:集合在被迭代器迭代的同时被修改;
解决方法:
1. 迭代时用锁;
2. 先复制,再迭代;
3. Android 使用 CopyOnWriteArrayList;
Android 源码
深入理解 Looper,Handler,Message
http://blog.csdn.net/lmj623565791/article/details/38377229
http://blog.csdn.net/shaoenxiao/article/details/54561753
软引用 弱引用 ReferenceQueue WeakHashMap
Java 四种引用介绍
https://www.cnblogs.com/dolphin0520/p/3784171.html
- 软引用很适合做缓存;
- 与 ReferenceQueue 联用时,ReferenceQueue.poll 拿到的是引用,此时调用该引用的 get 方法返回 null(对象将要被回收);
- 调用 System.gc 无法保证 JVM 立即执行垃圾回收;
ReferenceQueue 介绍
https://www.cnblogs.com/dreamroute/p/5029899.html
(读到 WeakHashMap 之前)
- 例子中的 referenceQueue.remove 改为 referenceQueue.poll,去掉 thread.setDaemon(true),System.out.println(“map.size->” + map.size()) 移到子线程的最后;
WeakHashMap 介绍
https://www.cnblogs.com/skywang12345/p/3311092.html
- 我的理解:HashMap.put 直接将 key 的引用存进键中,WeakHashMap.put 为 key 对象新增一条弱引用,并将弱引用存进键中,如图:
轮子:SoftMap
http://blog.csdn.net/lovoo/article/details/51302594
指针和引用
C++ 中指针和引用的区别
https://www.cnblogs.com/dolphin0520/archive/2011/04/03/2004869.html
(只读1.(1))
- 我的理解(以 Java 为例):
Integer i = new Integer(1);
此时内存栈中存放着引用 i,堆中存放着 Integer 对象 1:
指针 是堆中 Integer 对象 1 在内存中的地址,
引用 是栈中引用 i 或 i 的别名;
内部类
普通内部类和静态内部类的区别
http://blog.csdn.net/u012123938/article/details/46684839
- 普通内部类持有对外部类的强引用;静态内部类则没有,可以使用软引用或弱引用访问外部类(Android handler 内存泄漏:链接);
- 普通内部类不能持有静态成员;
Java 语法
普通代码块,构造代码块,静态代码块
https://www.cnblogs.com/sophine/p/3531282.html
- 三种代码块均没有方法名,注意各自的位置和关键词;
-
普通代码块功能与一般大括号相同;
构造代码块每次初始化类时都运行一次;
静态代码块只在 JVM 初次加载类时运行一次;
Java 多线程
Java 实现超时监听
http://blog.csdn.net/dailywater/article/details/19771689
方案1:使用守护线程;
方案2:使用 Future 特性(推荐);
Condition
http://blog.csdn.net/ghsau/article/details/7481142
传统的 notify() 不能指定唤醒哪一个 wait(),而 Condition 的 await() 可以唤醒特定的 signal();
网络
HTTP 1.0/1.1/2.0
http://www.jianshu.com/p/52d86558ca57
- 技术文章整理 + 心得
- hbase技术文章整理
- 在线技术文章总结整理
- html5技术文章整理
- 技术文章链接整理
- Android开发技术文章整理
- 技术文章: mplayer使用心得[zz]
- 编写技术文章的一些心得
- 编写技术文章的一些心得
- 编写技术文章的一些心得
- 整理以前备份的技术文章
- 大数据相关技术文章整理
- 收集整理框架和技术文章
- 不错的技术文章链接整理
- 技术文章积累及MyEclipse项目布置心得
- 大型网站架构技术文章整理下载
- 《正则表达式详解》系列技术文章整理收藏
- 《Memcache技术学习》系列技术文章整理收藏
- linux命令
- mysql模糊查询之字符串拼接!
- 自学编程需要注意什么?
- 快速幂模板(c)
- 深度学习与机器学习(待不断补充中....)
- 技术文章整理 + 心得
- 美国医疗领域人工智能应用行业报告:人工智能与医疗健康双向驱动
- 会话技术-jsessionid的持久化(十九)
- 如何费吹灰之力赚一枚比特币
- Slim 框架学习,第十天 _Router(一)
- 这家公司凭什么比 Facebook、微软、IBM 更聪明?
- MT5 中文版财经日历,主标不可或缺
- js调用微软TTS5.1语音引擎朗读
- Spring事务管理(详解+实例)