移动开发

Android 性能调优面试题

1.1 谈谈你对Android性能优化方面的了解? 启动优化: application中不要做大量耗时操作,如果必须的话,建议异步做耗时操作 布局优化:使用合理的控件选择,少嵌套。(合理使用 include,merge,viewStub等使用) apk优化(资源文件优化,代码优化,lint检查,.9.png,合理使用shape替代图片,webp等) 性能优化,网络优化,电量优化 避免轮询,尽量使

Android View 知识体系

工作原理 Android 中通过 Window 作为屏幕的抽象,而 Window 的具体实现类是 PhoneWindow 。通过 WindowManager 和 WindowManagerService 配合工作,来管理屏幕的显示内容。 WindowManager 内部真正调用的是 WindowManagerGobal 方法,添加视图的是 addView 方法。在WindowManagerGoba

Block源码解析

block源码 源码 如图所示一个正常block底层被编译成了 __main_block_impl_0结构体,该结构体里包括 _block_impl里面存储的是block的调用信息,__main_block_desc_0表示的是block内存描述。 剩下的属性即为block里引用到的属性 typedef void (^Block)(void); Block block; {

axios之cancelToken原理及使用

在真实项目中,当路由已经跳转,而上一页的请求还在pending状态,如果数据量小还好,数据量大时,跳到新页面,旧的请求依旧没有停止,这将会十分损耗性能,这时我们应该先取消掉之前还没有获得相应的请求,再跳转页面。 在真实项目中,当路由已经跳转,而上一页的请求还在pending状态,如果数据量小还好,数据量大时,跳到新页面,旧的请求依旧没有停止,这将会十分损耗性能,这时我们应该先取消掉之前还没有获

【Android】Room数据库的基本使用

【Android】Room数据库的基本使用 一、什么是Room 1.1 Room简介Room是Android Jetpack组件库中的一部分,对SQLite进行了封装,简化了对SQLite数据库的操作,让开发者使用面向对象的方式(通过Java/Kotlin)来操作SQLite数据库,从而避免了编写大量繁琐的SQL

【Android】Android Studio打包APK、精简APK大小与规范处理详解

目录引言一、应用打包1.1 导出APK安装包1.2 制作App图标 1.3 给APK瘦身  1.3.1 去除冗余功能 1.3.2 精简无用资源 1.3.3 压缩图片大小 二、规范处理 2.1 版本设置2.2 发布模式 结语引言Android Studio中运行程序默认都是debug版本,而想要在别人手机上安装应用,就需要把App打包成APK文件(relea

js 箭头函数和普通函数的区别和this指向看这篇就够了

this指向问题是个老问题了,网上的教程很多都是相互copy的,让萌新一脸蒙,这里简单总结下,保证一次性搞懂。 首先,这里有个问题是js分严格模式和非严格模式,严格模式和非严格模式下this指向稍微有点区别,主要就是全局作用域中普通函数中的this指向问题,严格模式下是指向undefined的,非严格模式下是指向window。 image.png 现在一般用的都是严格模式,比如vu

iOS 三种画板实现方式

UIBezierPath,Quartz2D,OpenGLES 1. UIBezierPath 1 UIBezierPath 使用UIBezierPath可以创建基于矢量的路径,此类是Core Graphics框架关于路径的封装。使用此类可以定义简单的形状,如椭圆、矩形或者有多个直线和曲线段组成的形状等。 UIBezierPath是CGPathRef数据类型的封装。如果是基于矢量形状的路

adb shell input text不能输入中文的解决方案

原因 adb默认是不支持Unicode编码的,无法通过adb shell input text 命令输入中文到手机或者模拟器。 解决步骤 1、安装ADBKeyBoard.apk文件(直接搜索就能找到) 打开手机或模拟器,adb install ADBKeyBoard.apk安装该输入法 在手机上直接安装也可 2、设置默认输入法 打开手机设置 -> 点击语法与输入法 -> 点击输入法管