android开发学习积累(二)

  • Flutter 

flutter快速开发,可以同时运行于ios和Android上,但是实际上很多功能其实是通过通道的方式,调用Android和ios的原生api,而且很多地方没有完善,比如日志比起Android原生log,分级少,捕捉奔溃日志麻烦等,界面绘画也很难做到一些原生的效果,公司为了快速出产品,采用了flutter做开发,然而最后还是用Android重写了所有的界面,因为在各种细节上实在很难达到原生水平。

 

  • TextView设置省略号

TextView设置省略号,必须搭配行数限制。当使用字数限制的时候,省略号并不会出现,这感觉是个坑,可以使用监听器,手动截断输入框内容,在末尾添加省略号。

 

  • studio快速定位到错误地方

在一个有一千行代码甚至以上页面,如果出现了一些错误,从右侧找红线其实是很难找到对应的地方的,这时候就可以使用快捷键快速定位到出错地点 : Shift+F2、

 

  • 软键盘

在软键盘弹出的情况下,如果设置了一些例如顶起界面控件之类的,在关闭页面或者跳转去其他页面的时候,页面ui会有一个位置的跳动,这时候只要在跳转页面或者说关闭页面前吧软键盘收起就行了,最好给跳转代码或者关闭代码加个100或者200毫秒的延时,便于让软键盘可以完全收起。

 

  • 内存细节

静态内部类不会持有外部类的引用,使用内部类的时候注意一下,可以用来防止出现内存泄漏问题。

 

  • 好GitHub项目

https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/README-CN.md

https://github.com/getActivity/AndroidProject

里面集合了安卓开发会用到的各种工具类,不管是拿来用,还是学习都是很好的资料

 

  • 日志系统

如果日志系统中用到多个线程不同步,或者多个模块日志系统同步运行,在做缓存写入文件时,就要考虑一种情况,那就是日志错乱问题,也就是在你的日志还未缓存够能写入文件的数量前,其他模块日志系统缓存够了,在你之前就写入了,哪怕这些日志实际上打印时间是在你那些未写入文件的日志之后的日志,这样一来,就会导致日志文件内容的错乱,时间的杂乱。所以最好不要使用多个日志系统,最好使用一个,统一管理,这样可以使用缓存等手段减少其对app本身的运行效率影响

 

  • QQ

腾讯获取QQ性别的接口,获取到的性别可能不准,如果性别要求较严格,如一旦确定,不能更改的类型的话,最好通过其他方法确定性别,而且QQ 的APPID有多个,如果出现APPID出错,记得看看自己是不是用错了APPID

 

  • Context

Context可以简单分为三类,Application,Activity,Service,在大多数情况下,他们可以通用,互相替换,使用时考虑其生命周期,防止出现内存泄漏即可,但是在一些场景下必须使用Activity的Context,比如启动一个新的Activity,或者弹出一个Dialog。

Context的数量 = Activity的数量 + Service的数量 + 1(Application)

 

  • LeakCanary

LeakCanary是一个内存检测工具,通过集成到项目中,你就可以在运行项目的时候,实时检测是否出现内存泄漏问题。

学习网址:https://blog.csdn.net/hmh0512/article/details/57053265

 

  • FileObserver

FileObserver是一个文件监控的抽象类,只要继承它,并实现其方法,就能实现对文件,文件夹的监控捕捉文件的修改,创建,删除等等事件。

CREATE:有时创建新文件时,该值并不一定被触发,可以使用MOVED_TO待替

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值