android开发学习积累(三)

  •  Notification自定义布局RemoteViews 

Notification要实现自定义布局,就必须使用RemoteViews,而RemoteViews并不支持所有控件,所以在设置布局时,布局文件内的控件类型必须做好挑选,例如ConstraintLayout,RemoteViews就不支持,如果布局使用了ConstraintLayout,就会报错:android.app.RemoteServiceException: Bad notification posted from package com.statussaver.statusdownloader: Couldn't expand RemoteViews for: StatusBarNotification

 

  • 确定内存泄漏位置 

1.在项目中集成leakcanary,以便及时获得内存泄漏的通知,以及内存泄漏的位置

2.使用studio自带的Profile确定对应类是否真的泄漏了

点击进入Profile

点击查看内存详情

点击触发GC,防止可以回收的对象留在内存中混淆分析结果

点击获取接下来一段时间内的内存使用情况

点击选择显示类型,一般选择按包显示,因为一般我们只分析自己的代码

 

找到自己的包,开始分析

https://developer.android.com/studio/profile/memory-profiler?hl=zh-cn

 

 

  • VideoView导致内存泄漏

VideoView控件因为自身原因,常常会导致内存泄漏的情况发生,所以最好不要使用该控件,而使用其他控件代替

 

  • CoordinatorLayout+AppBarLayout隐藏标题栏

要隐藏的控件就设置:

app:layout_scrollFlags="scroll|enterAlways"

 

滑动控件设置(也可设置在滑动控件的父布局上)  :

app:layout_behavior="@string/appbar_scrolling_view_behavior"

 

scroll: 所有想滚动出屏幕的view都需要设置这个flag- 没有设置这个flag的view将被固定在屏幕顶部。

enterAlways:这个flag让任意向下的滚动都会导致该view变为可见

enterAlwaysCollapsed:当你的视图已经设置minHeight属性又使用此标志时,你的视图只能已最小高度进入,只有当滚动视图到达顶部时才扩大到完整高度。

exitUntilCollapsed: 滚动退出屏幕,最后折叠在顶端。

 

  • LitePal 

数据库第三方,将数据库与bean结合,操作简单,使用方便

 

  • 服务常驻保活

https://github.com/xingda920813/HelloDaemon

https://www.twblogs.net/a/5c767441bd9eee339917fb1b/zh-cn

 

  • TabLayout

使用简单方便,tab可设置图片,控制下划线长度宽度

https://github.com/H07000223/FlycoTabLayout

 

  • 抓包

使用的工具为:Charles

下载和破解网站:https://www.zzzmode.com/mytools/charles/

使用教程:https://www.axihe.com/charles/main/readme.html

启动Charles后,部分网站无法访问的原因: 虽然安装了Charles的证书,但是证书并没有被信任

mac:https://blog.csdn.net/yarden0/article/details/78358299

window:https://jingyan.baidu.com/article/9f7e7ec0c1107c6f29155461.html

找到证书后,直接右键剪接到 “受信任的根证书颁发机构”的证书列表里即可

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值