- 博客(27)
- 收藏
- 关注
原创 Android A/B 方式升级
通过小范围的用户进行测试,可以快速发现潜在问题,降低大规模发布所带来的风险。:可以实时收集用户在不同版本上的使用体验,及时调整和优化新功能。:可以通过比较两种版本的用户行为数据,做出基于数据的决策。
2025-03-07 17:38:03
151
原创 Android 面试进阶干货
Android 面试进阶干货直接下载apk https://pan.baidu.com/s/1hHHiukPV5OdNyAHbZXOfUw 提取码anot
2020-10-12 11:25:46
116
原创 数据库操作四大类型
数据库操作四大类型1数据 查询(DQL) 语言 基本构成 SELECT FROM WHERE 这些语句构成2数据 操纵(DML) 语言 基本构成 INSERT UPDATE DELETE3数据 定义(DDL) 语言 基本构成 CREATE TABLE VIEW 表的创建 ,属性定义4数据 控制 (DCL) 语言 主要时对数据库 进行检测 管理(授权,回滚( SQL>ROLLBACK;),提交数...
2020-06-18 19:27:54
5401
原创 IntentService 与 Service的区别
IntentService 与 Service的区别:(service(不是单独进程和应用程序同进程)intentService(是一个处理异步请求类,专处理耗时任务))Service 是长期运行在后台的应用程序组件。Service 不是一个单独的进程,它和应用程序在同一个进程中,Service 也不是一个线程,它和线程没有任何关系,所以它不能直接处理耗时操作。如果直接把耗时操作放在 Service 的 onStartCommand() 中,很容易引起 ANR .如果有耗时操作就必须开启一.
2020-06-18 19:24:38
3023
原创 Activity Window View 三者的关系
Activity Window View 三者的关系1、在Activity中调用attach,创建了一个Window2、创建的window是其子类PhoneWindow,在attach中创建PhoneWindow3、在Activity中调用setContentView(R.layout.xxx)4、其中实际上是调用的getWindow().setContentView()5、调用PhoneWindow中的setContentView方法6、...
2020-06-18 19:22:34
200
原创 Handler、Thread 和 HandlerThread详解
Handler、Thread 和 HandlerThread详解区别:1)Handler:在Android中负责发送和处理消息,通过它可以实现其他支线线程与主线程之间的消通讯2)Thread:线程,可以看作是进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的独立运行的基本单位3)HandlerThread:封装了Handler + ThreadHandlerThread适合在有需要一个工作线程(非UI线程)+任务的等待队列的形式,优点是不会有堵塞,减少了对性能的消耗,缺...
2020-06-18 19:10:41
1313
原创 launch mode 启动模式
原由:因为Activity 都是由Task(栈)来管理的,1任务栈和2返回堆栈 android:launchMode="standard" 可以存在多个实例,这是默认的启动模式,系统总是会在目标栈中创建新的activity实例。 android:launchMode="singleTop" 如果这个activity实例已经存在目标栈的栈顶,系统会调用这个activity中的onNewIntent()方法,并传递...
2020-06-18 19:01:51
598
原创 View 绘制总结:
View 绘制总结:绘制三大流程:1)( Measure)测距2)( Layout)布局3)(Draw)绘制自定义View的时候一般需要重写父类的onMeasure()、onLayout()、onDraw()三个方法,来完成视图的展示过程源码解析view绘制的整个时序图:由时序图解读:1)handleResumeActivity()方法里做的事情addViewfinal void handleResumeActivi...
2020-06-18 18:52:12
189
原创 ANR 定位和修正( Application Not Responding)
ANR 定位和修正( Application Not Responding)1、ANR排错一般有三种情况KeyDispatchTimeout(5 seconds) –主要类型按键或触摸事件在特定时间内无响应BroadcastTimeout(10 secends) –BroadcastReceiver在特定时间内无法处理完成ServiceTimeout(20 secends) –小概率事件 Service在特定的时间内无法处理完成(Service 相当于主线程)发生原因主线程被IO操作
2020-06-18 18:47:06
448
原创 OOM 内存泄漏
什么情况导致会导致内存泄漏1)使用资源时没做关闭处理(cursor,io,bitmap)2)广播注册后没有反注册3)Handler发消息(特别是延迟消息),消息没有消费掉,且没有remove。4)静态变量赋值了生命周期短的对象。比如工具类持有Context对象,设置为某个Activity。5)单例模式持有activity6)非静态内部类,持有父类引用,造成父类无法回收解决办法1做相应的关闭,2做相应的反注册,或者反绑定,3对一直持有的contex...
2020-06-18 18:43:41
454
1
原创 本地广播与全局广播的区别:
由于之前的广播都是全局的,所有应用程序都可以接收到,这样就很容易会引起安全性的问题,比如说我们发送一些携带关键性数据的广播有可能被其他的应用程序截获,或者其他的程序不停地向我们的广播接收器里发送各种垃圾广播。为了能够简单地解决广播的安全性问题,Android引入了一套本地广播机制,使用这个机制发出的广播只能够在应用程序的内部进行传递,并且广播接收器也只能接收来自应用程序发出的广播,这样所有的安全性问题就都不存在了。1注册方式不同2安全性不同(一个内,一个外)(1)本地广播无法通过...
2020-06-18 18:40:10
1672
原创 通过TextView 来测量不同分辨率下 一行能显示多少字符
首先准备好TextView 和测量字符如<!--用来测量一行可以显示多少字符 边距统一用padding--><TextView android:id="@+id/article_ranging" android:layout_width="match_parent" android:layout_height="wrap_conten...
2019-06-29 15:51:07
639
原创 自定义 视频播放器 SurfaceView +MediaPlayer
直接上代码:自定义surfaceviewpackage com.blue.mvvm.media.view;import android.content.Context;import android.util.AttributeSet;import android.view.SurfaceView;public class VideoSurfaceView extends Su...
2019-06-29 15:41:38
622
2
原创 设置电量条颜色
int statusBarcolor;StatusBarCompat.compat(this, statusBarcolor);
2017-11-10 17:48:35
1558
原创 java反射用法
Class c = context.getClass();Method[] methods = c.getDeclaredMethods();for (Method method:methods){ ToolsEx.MyLog("输出方法名=="+method.getName()+" 修饰符=="+ Modifier.toString(method.getModifiers()
2017-09-05 16:11:37
304
原创 给空白包签名MD5
腾讯开放平台的官方说明如下,如何签名:jarsgner-verbose-keystore[keystorePath]-singnedjar [apkOut] [apkln] [alias]jarsgner命令格式:-verbose输出详细信息-keystore密钥库位置-alias demo.keystore 别名 demo.keystore-keyalg
2016-10-19 17:47:46
2276
翻译 android 常用的网络框架
在日常的开发中,大多数应用程序基本都需要连接网络,发送一些数据给服务端,然后在从服务端获取一些数据。通常在android中进行网络连接一般使用Scoket和HTTP,HTTP请求方式教Scoket多得多。HTTP请求一般采用原生的HttpClient和HttpUrlConnection的两种网络访问方式。下面介绍几种常用的Android网络框架,希望对你在实际开发中有所帮助。android-a
2016-10-12 14:56:37
285
翻译 获取手机的经纬度
package com.studio.android.chp08.ex01; import java.io.IOException; import java.util.List; import android.app.Activity; import android.content.Context; import android.locatio
2016-09-20 15:21:15
477
原创 Android框架 androidannotations 的配置 android studio 配置
第一 先在局部添加依赖 为 //*****注释的都要加进去apply plugin: 'android-apt' //*****def AAVersion = '3.1' //*****android { compileSdkVersion 23 buildToolsVersion "23.0
2016-08-31 13:47:20
278
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人