- 博客(20)
- 资源 (53)
- 问答 (1)
- 收藏
- 关注
原创 Android 内存泄露的介绍及解决方案
1.定义:内存泄露指的是内存中存在已经没有用的对象而没有被GC回收2.表现:内存抖动,可用内存逐渐变少3.危害:内存不足,GC频繁,OOM解决方案:1 通过Memory Profiler工具进行初步观察,发现有内存泄露的情况2.通过Memory Analyzer工具结合代码进行确认...
2020-02-28 21:23:55 144
原创 Android 内存抖动的介绍
在开发大型app中,会遇到内存抖动的情况,什么是内存抖动呢,就是内存频繁的分配和回收,从而造成内存不稳定,内存不足及碎片,它有哪些表现呢表现:频繁GC,内存曲线呈现出来锯齿状危害:导致卡顿,OOM解决方案1.Memory Profiler工具排查在AS开发工具的左下角 点击Profiler 就弹出Memory Profiler界面,这时候我们就可以看到如果app有内存抖动的情况,就...
2020-02-27 20:33:51 220
原创 Android 详解build.gradle文件
Android Studio是采用Gradle来构建项目的。Gradle是一个非常先进的项目构建工具,它使用了一种基于Groovy的领域特定语言(DSL)来声明项目设置。首先看项目最外层目录下的build.gradle文件,代码如下所示:buildscript { repositories { google() jcenter() } d...
2020-02-26 21:37:07 461
原创 Android app内存优化方案
android开发过程中,对于内存优化也是特别重要的,在面试当中也会问到这些问题,那么怎么样做内存优化呢,内存优化一般会从三个方面优化1.内存抖动:锯齿状,GC导致卡顿2.内存泄露:可用内存减少,频繁GC3.内存溢出:OOM,程序异常工具选择1.Memory profiler它是用实时图表的形式来展示应用内存使用量2.Memory Analyzer它是强大的Java Heap分析工...
2020-02-26 17:44:09 358 1
原创 android app启动优化两种测量app启动时间的方式
1.app启动优化 用adb命令测量启动时间 命令如下adb shell am start -W packagename/packagename.MainActivity然后运行后出现三个时间ThisTime:最后一个Activity启动好使TotalTime:所有Activity启动耗时WaitTime:AMS启动Activity的总耗时2.手动打点的方式开始时间为 applica...
2020-02-25 17:00:05 274
原创 android 如何在terminal中生成release apk文件
terminal输入 ./gradlew assembleRelease 编译release包
2020-02-22 16:26:41 559
原创 Android app快速定位耗时代码的方法
查看Logcat在Android Studio Logcat中过滤关键字“Displayed”,可以看到对应的冷启动耗时日志。adb shell使用adb shell获取应用的启动时间adb shell am start -W [packageName]/[AppstartActivity全路径]执行后会得到三个时间:ThisTime、TotalTime和WaitTime,详情如下:T...
2020-02-16 19:04:49 598
原创 Git 命令全集
一、Git 配置相关如果你首次使用 Git,那刚开始首先是需要配置各种身份信息的,这样当你提交相关任务的时候,别人才能知道这个 commit 是谁提交的。(1)、Git 最小配置1、配置全局账户,也就是该账户对所有的 Git 仓库都有效git config --global user.name ‘你的账户名称’git config --global user.email ‘你的 Emai...
2020-02-16 18:56:07 118
原创 Android ViewHolder 的 MVVM实现方式
在App的开发中,使ViewHolder可以像Activity或Fragment那样使用MVVM模式。让ViewHolder拥有生命周期,通过ViewModel与LiveData对数据变化进行监听,在被复用后与原LiveData解绑,解决复用后数据错乱的问题。(1)创建抽象类BaseLifecycleViewHolder继承ViewHolder,实现LifecycleOwner接口,使之拥有生命...
2020-02-16 17:58:20 605
原创 Android TV-电视开发常用知识点讲解
主要分为TV-UI,IPTV,OTT,DVB,TVOS,DEBUG等几大模块展开。适用于常见盒子,电视,投影仪等TV开发。MindMap开局一张图,直接上脑图UIAndroid TV 界面开发有别与传统的移动手机端开发,TV端的交互主要是有用户遥控器操作完成,因而在TV上按键和焦点的处理显得尤为重要,其次TV端的输出显示媒介主要是电视显示屏,不同的电视所能支持的输入显示分辨率也不一样,因...
2020-02-14 13:54:00 2020
原创 Android设备唯一识别码的获取
详细参考WIKI百科。UUID(Universally Unique Identifier) 全局唯一标识符:指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的,由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得)IMEI是手机的身份证,MEID是CDMA制式(电信运营的)的专用身份证;
2020-02-14 13:46:34 6443
原创 Android 组件化工程结构分析以及项目方案的实施
组件化工程结构Android组件化架构.png第一层:空壳app。应用的入口,可存放启动页,依赖所有业务组件第二层:业务组件。根据不同业务横向拆分出来的业务组件。任何一个业务组件都可以独立出来成为一个应用第三层:功能组件。通用业务是从应用业务中抽取出来的交集,从应用上说,他属于业务,而针对应用业务而言则更像是一种功能,好比登录这种业务功能,不需要关心有没有界面,当中是怎样的逻辑,只需要提供...
2020-02-14 10:59:11 339
原创 Android音视频开发:音频非压缩编码和压缩编码
音视频在开发中,最重要也是最复杂的就是编解码的过程,在上一篇的《Android音视频开发:踩一踩“门槛”》中,我们说音频的编码根据大小划分有两种:压缩编码和非压缩编码,那到底是怎么实现的这两中编码的呢?这一次就详细了解Android中如何使用这两种方式进行音频编码前景提要这里先回顾一下音频的压缩编码和非压缩编码:非压缩编码:音频裸数据,也即是我们所说的PCM压缩编码:对数据进行压缩,压缩不...
2020-02-13 09:11:31 524 1
原创 Android Command 开发常用命令行合集
在进行系统产品开发中,adb命令也是常有的,方便查询一些功能,接下来收集了好多常用的命令,来方便使用。
2020-02-13 08:58:12 1907
原创 Android adb常用命令详解
1.ADB定义ADB全称Android Debug Bridge。ADB是一种功能多样的命令行工具,起到了调试桥的作用,可以用来操作Android设备。ADB是Android开发/测试人员强大的工具。可以说,ADB对我们Android的开发至关重要,深入的了解常用的命令和作用就显得至关重要了ADB使一种客户端-服务器程序,包括以下三个组件:客户端:用于发送命令,客户端在开发计算机上运行...
2020-02-12 14:17:56 478
原创 android Activity讲解二
用户交互第一窗口,采用Activity栈管理Activity1.Activity形态Active/Running栈顶可见,与用户交互Paused新的非全屏或者透明的Activity来到栈顶失去焦点和与用户交互能力,状态信息、成员变量保留内存极低情况会被系统回收Stopped新的Activity完全覆盖不再可见状态信息、成员变量依然保留Killed被系统回收掉2.Acti...
2020-02-04 16:45:01 134
原创 android 解决键盘遮挡问题
android开发过程中,会遇到编辑框输入内容弹出软键盘,往往会出现键盘遮挡内容,或者出现页面整体上移的,或多或少在体验上都不是很优雅,今天提供个方法是自行控制页面上移距离,竟可能让页面呈现给用户友好点。一般我们会在AndroidManifest.xml 里配置windowSoftInputMode来控制键盘与页面的交互。举个栗子,一个简单的登录页面。adjustResizeactivit...
2020-02-04 16:10:35 574 2
原创 android开发 动态drawable的创建
如何创建一个动态的drawable 图片如下:创建drawable<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <...
2020-02-03 15:09:30 532
原创 Android file.delete()与file.deleteOnExit()的区别
1.delete()方法: 当调用delete()方法时,直接删除文件,不管该文件是否存在,一经调用立即执行;2.deleteOnExit()方法: 当调用deleteOnExit()方法时,只是相当于对deleteOnExit()作一个声明,当程序运行结束,JVM终止时才真正调用deleteOnExit()方法实现删除操作。即该方法是将删除的命令缓存了一下,到服务停止的时候再进...
2020-02-03 15:02:46 2739
原创 android 多线程开发 正确关闭线程的方法
在Android开发中,经常会碰到多线程,关于线程的关闭,可能会用stop() 方法,但是stop是线程不安全的,一般采用interrupt,判断线程是否中止采用isInterrupted,如果线程中有Thread.sleep方法,当设置中断后,执行这个方法会抛出异常,就务必在异常中继续关闭线程Thread thread = null;thread = new Thread(new Runn...
2020-02-03 14:15:24 1517
android Accessibility无障碍服务实现获取系统全局任何控件的名称和坐标信息
2024-03-23
8.1 9.0 10.0安装app时抛出异常解决方案.rar
2021-09-07
android 9.0 10.0Launcher3 Hotseat 添加apps button.txt
2021-08-08
android 9.0 10.0添加负一屏(左一屏)功能left_screen.rar
2021-08-06
android 自定义九宫格图案解锁DrawPwd.rar
2021-08-05
关于开通单篇收费资源的建议
2021-07-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人