自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 Android 获取已经安装apk的构建时间

获取所有已安装的apk中最新构建的apk。

2025-03-10 17:52:42 211

原创 Android Apk的备份与安装

【代码】Android Apk的备份与安装。

2025-03-07 18:14:29 238

原创 Android 数据库升级(迁移)

1 版本code升级,新增字段。

2025-03-07 17:54:56 164

原创 Android 原生DownloadManager下载使用

【代码】Android 原生DownloadManager下载使用。

2025-03-07 17:45:51 140

原创 Android A/B 方式升级

通过小范围的用户进行测试,可以快速发现潜在问题,降低大规模发布所带来的风险。:可以实时收集用户在不同版本上的使用体验,及时调整和优化新功能。:可以通过比较两种版本的用户行为数据,做出基于数据的决策。

2025-03-07 17:38:03 151

原创 备用地址笔记

自用

2022-11-17 21:52:00 708

原创 文件工具类

自己用

2022-09-30 11:09:38 145

原创 MvvM框架

kotlin mvvm 整套使用

2022-07-04 16:43:48 776

原创 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

原创 自定义 Dialog方式的加载动画

作为加载和上传很实用的 加载上传动画 dialog

2016-09-01 13:37:17 435

原创 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关注的人

提示
确定要删除当前文章?
取消 删除