android 进阶
Pluto8172
技术成就梦想
展开
-
练气第八天-handler
从一个APP的进程创建开始,随着主线程被创建后,handle就开始运行了,handle贯穿整个APP的生命周期,因为Android应用是事件驱动型的程序,而所有的这些事件,都是通过各种各样的方式,发送到handle的messagequeue上面的,然后通过looper不停的去取消息,处理消息,从而实现了Android应用的正常执行,包括view绘制,事件响应,activity生命周期回调,等等。最后交给handler处理。这是非常大的一个内容板块。原创 2024-04-05 22:35:54 · 202 阅读 · 0 评论 -
练气第七天
答,来到车上第一步,先抓一下日志,包括系统日志,mainlog,eventlog,kernel log,然后抓一下trace日志,抓CPU信息,抓memory信息,问: 当前车机发生卡顿,要求现场看一下,具体是什么原因导致车机卡顿?要你的解决办法是什么?然后根据CPU负载信息,判断一下是系统卡顿,还是应用卡顿?哎,这是今天遇到的一个面试题,回答的很一般。然后用top命令看看当时耗时耗力的进程有哪些?然后一点一点分析日志,判断卡顿原因。看看是不是必现问题?原创 2024-04-03 22:40:13 · 93 阅读 · 0 评论 -
练气第六天
ANR问题,这其实是一个非常综合性的问题,因为anr会涉及CPU负载,内存空间大小,线程锁,GC回收,这里面每个点,都是非常考验我们基本功的。3、系统或进程内存不够,由于内存不足,所以需要频繁gc,或者lmk,导致任务无法完成,这涉及gc,内存。分析ANR问题,需要综合上述所有信息,抽丝剥茧,一步一步找原因,看看到底是什么原因导致ANR?对症下药,如果太耗时,也使用多线程方案,如果被锁了,也解锁,如果内存不够,也优化内存。从anr进程的主线程栈信息开始,先看当时发生anr问题是,主线程处于什么状态,原创 2024-04-02 22:55:27 · 2193 阅读 · 1 评论 -
练气第五天
答二: 应用启动是从 ActivityThread 的 main 开始的,先是执行了 Looper.prepare(),该方法先是 new 了一个 Looper 对象,在私有的构造方法中又创建了 MessageQueue 作为此 Looper 对象的成员变量,Looper 对象通过 ThreadLocal 绑定 MainThread 中;如何判断你是高级,这需要你能从系统,从原理,从背景能把一个问题说清楚。4、该问题在开发过程中有没有什么问题,需要怎么避免。3、该问题在平时开发过程中的应用。原创 2024-04-01 23:16:45 · 204 阅读 · 0 评论 -
练气第四天
第四步: 在system_service进程中,就会启动Android系统中各种各样的系统服务,我们最常用的ams pms wms carservice等服务。第一步: 启动Bootloader,加载引导程序到内存中,引导程序的作用是加载Linux启动程序,启动Linux的内核。第二步: Linux内核启动后,会初始化Linux的第一个进程--init进程。第三步: 在zygoye进程中,会准备一个应用进程所需的所有必要资源。3、启动服务,包括引导服务,核心服务,其他服务。3、启动zygote进程。原创 2024-03-31 22:46:18 · 375 阅读 · 0 评论 -
android 之加载图片
android 加载图片原创 2015-07-16 19:01:25 · 444 阅读 · 0 评论 -
android之动画
android动画 android 支持三种类型的动画 1属性动画: 一种补间动画(tweened animation),通过在目标对象的任何属性的两个值之间应用增量变化,可以生成一种动画效果,这种动画效果可以生成各种效果,从改变一个视图的颜色或透明度来使之淡入淡出,改变字体的大小,或者增加字符的生命力。 2视图动画:一种补间动画,可以用来旋转,移动,拉伸一个视图 3帧动画:逐帧的格子动画原创 2015-07-20 17:38:28 · 328 阅读 · 0 评论 -
Android 每周必看资源
学习。进步。成长原创 2016-08-19 17:27:43 · 291 阅读 · 0 评论