自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 资源 (17)
  • 收藏
  • 关注

原创 Android帧动画实现,防OOM,比原生动画集节约超过十倍的资源

2015年项目接到一个需求,实现一个向导动画,这个动画一共六十张图片,当时使用的是全志A33的开发(512的内存),通过使用Android的动画集实现,效果特别卡顿,然后想到这种方式来实现,效果很流畅.然后写成开一个开源项目供大家参考对比以下两种方式实现帧动画,使用相同的80张280x280的png图片执行动画,资源占用情况对比:Android动画集实现: 内存占用56M左右Fra...

2017-03-24 17:54:00 17642 15

原创 DevicePolicyManagerService之DeviceAdmin

目录1.DevicePolicyManagerService的初始化2.DeviceAdminDevicePolicyManagerService是Android提供的一个可管理和操作设备的系统服务,通过DevicePolicyManager为应用层提供操作设备的对应策略.目前推出了三种设备管理方案:Device Administration,Profile Owner,Device Owner.DeviceAdmin是Android2.2中引入,用户可以授权自己的应用设备管理权

2022-04-09 22:45:45 3978

原创 DevicePolicyManagerService之DeviceOwner和ProfileOwner

1.ProfileOwnerProfileOwner是Android5.0系统推出.ProfileOwner包含了所有DeviceAdmin用户的管理能力.系统只能设置一个Profile Owner程序,并且设置为ProfileOwner后应用无法卸载.设置ProfileOwner具有MANAGE_PROFILE_AND_DEVICE_OWNERS权限和shell uid的应用程序才能调用此方法publicbooleansetProfileOwner(ComponentName,S...

2022-04-09 22:22:47 4417 1

原创 Android权限管理--权限类型

目录1.普通权限(normal)2.运行时权限(dangerous)3.签名权限(signature)4.特殊权限(privileged)查看android权限的等级判断应用是否拥有对应权限Android 将权限分为不同的类型,包括安装时权限、运行时权限和特殊权限。每种权限类型都指明了当系统授予应用该权限后,应用可以访问的受限数据范围以及应用可以执行的受限操作范围。1.普通权限(normal)此类权限允许访问超出应用沙盒的数据和执行超出应用沙盒的操作。但这些数据和操作对.

2022-03-14 17:28:35 14669

原创 四.Activity的启动流程-ActivityThread启动Activity的过程

Activity的启动一般分为普通Activity的启动,根Activity的启动.而根Activity是指应用启动的第一个Activity过程,所以也可以理解为应用的启动过程.相关内容链接:android系统启动流程Activity的启动过程(应用的启动流程)

2020-07-14 21:42:13 1294 1

原创 三.Activity启动流程-AMS请求Zygote启动进程过程

Activity的启动一般分为普通Activity的启动,根Activity的启动.而根Activity是指应用启动的第一个Activity过程,所以也可以理解为应用的启动过程.相关内容链接:android系统启动流程Activity的启动过程(应用的启动流程)

2020-07-14 21:41:41 960 1

原创 二.Activity启动流程-ATMS到ApplicationThread的调用过程

Activity的启动一般分为普通Activity的启动,根Activity的启动.而根Activity是指应用启动的第一个Activity过程,所以也可以理解为应用的启动过程.相关内容链接:android系统启动流程

2020-07-14 21:38:12 1289

原创 Activity的启动流程(基于Android 10.0源码)

应用的启动流程大致分为如下四个阶段:一.应用进程(Launcher)调用ATMS系统进程的过程二.ActivityTaskManagerService到ApplicationThread的调用过程三.AMS向Zygote发送启动应用进程的过程四.ActivityThread启动Activity的过程

2020-05-13 00:41:08 1299 1

原创 android源码百度网盘下载(AOSP源码集合)

android源码集合,android O P Q源码下载链接:https://pan.baidu.com/s/1VfzY2u5HPalvv3zOUzm_Rw提取码:mt7n

2020-03-17 22:18:31 6393 11

原创 Android Framework面试题

Framework面试题 Android 系统基础 JVM、Dalvik和ART是什么以及他们的关系 01 Binder机制 02 系统级app和第三方应用级app分别在什么目录下?system/priva-app和system/app目录的权限有什么...

2019-11-01 09:36:31 12594 1

原创 Android应用面试题及答案汇总

android面试题2019 答案 Java 基础 String、StringBuffer、StringBuilder的区别 03 进程和线程的区别;多线程与线程池 16 java中equals和==的区别 ...

2019-10-08 16:57:12 1592 2

原创 Kotlin基础语法

Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源.Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行.在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言.Kotlin实现 He...

2019-03-13 09:29:21 757 1

原创 Android8.0后台服务限制适配

Android8.0的后台服务限制导致如下报错:--------- beginning of crashE/AndroidRuntime( 4237): FATAL EXCEPTION: mainE/AndroidRuntime( 4237): Process: com.ansen.appsettings, PID: 4237E/AndroidRuntime( 4237): jav...

2018-12-05 17:14:36 1695 1

原创 Android9.0 P 电源管理&android各版本电量优化功能策略

针对电量优化android的改动在最近几个android版本中已存在的电量优化功能基础上,Android 9 引入了一些新功能来持续改进设备电源管理,以确保将系统资源提供给最需要它们的应用.近几个android版本中电量优化功能:Android 5.0 Lollipop: 1.新增 Job Scheduling API 可以将作业推迟(合并)到稍后或指定条件下(如设备充电...

2018-10-24 18:52:20 8027 2

原创 Android加速度传感器 -- 抬手亮屏

android系统提供以下传感器供应用层使用,具体如下:// android.hardware.SensorTYPE_ACCELEROMETER 1 // 加速度传感器TYPE_MAGNETIC_FIELD 2 // 磁力传感器TYPE_ORIENTATION 3 // 方向传感器TYPE_GYROSCOPE 4 // 陀螺...

2018-06-06 14:46:20 7278 1

原创 Android OTA差分包升级失败

升级失败log如下:I update_engine: [0530/162336:INFO:delta_performer.cc(359)] Applying 21701 operations to partition "system"E update_engine: [0530/162336:ERROR:delta_performer.cc(1060)] The hash of the sour...

2018-06-01 15:24:04 7386 12

原创 Android APP性能优化之 ---- 内存优化(二)

由于Android应用的沙箱机制,每个应用所分配的内存大小是有限度的,因此内存会显得非常珍贵,如果我们的内存占用超过了一定的水平就会出现OutOfMemory错误内存概述RAM(random access memory)随机存取存储器.(通俗的说就是内存)Java的内存分配策略:Java内存分配时会涉及到以下区域:栈(Stack):一些基本类型的变量和对象的引用都是在栈内存中...

2018-04-26 11:05:17 1054

原创 ConstraintLayout用法及和RelativeLayout测试对比性能

ConstraintLayout 简介:ConstraintLayout是Android Studio 2.2中主要的新增功能之一,它可以在不嵌套任何布局的情况下构建复杂的布局.它与RelativeLayout非常相似,所有的view都依赖于相邻控件的相对关系.而ConstraintLayout比RelativeLayout更加灵活,在AndroidStudio中进行拖拽即可完成布局....

2017-11-03 11:06:58 5336 1

原创 Settings7.0添加新菜单列表项源码分析 Fragment配置Activity启动入口

Android6.0 Settings是通过加载dashboard_categories.xml,获取显示列表,所以在6.0上可以直接在dashboard_categories.xml添加icon、title、summary,同时也可以添加目标fragment和Intent.Android 7.0是通过在Androidmanifest.xml中配置intent-filter的Action,然后对指...

2017-06-08 17:43:34 3402 1

原创 android 7.0低电耗Doze模式

从 Android 6.0(API 级别 23)开始,Android 引入了两个省电功能,可通过管理应用在设备未连接至电源时的行为方式为用户延长电池寿命。 低电耗(Doze)模式通过在设备长时间处于闲置状态时推迟应用的后台 CPU 和网络 Activity 来减少电池消耗。 应用待机(App Standby)模式可推迟用户近期未与之交互的应用的后台网络 Activity。低电耗模式(Doze模式)...

2017-04-13 16:01:46 4278 1

原创 FileProvider文件共享FileUriExposedException异常解决

FileProvider是一个特殊的ContentProvider子类,它将 content:// Uri 代替了 file:/// Uri ,从而促进与应用程序关联的文件的安全共享.官方文档在Android N 7.0上,没有使用FileProvider访问其他文件可能会出现如下异常:AndroidRuntime: FATAL EXCEPTION: Thread-2An

2016-04-02 11:53:54 4918

原创 android home键,back返回键监听,Window窗体监听返回键

在Activity中监听或拦截返回键重写dispatchKeyEvent()方法 @Override public boolean dispatchKeyEvent(KeyEvent event) { if(event.getKeyCode()==KeyEvent.KEYCODE_BACK){ Log.d("ansen", "KEY

2016-03-30 22:58:37 3026 1

原创 AccessibilityService基本用法

AccessibilityService主要是帮助残障用户使用android设备和应用,它可以监听用户界面的一些状态转换,例如页面切换、焦点改变、通知、Toast等,并且能模拟完成一系列触摸操作.(市面上通过无障碍实现的功能有:抢红包,apk自动安装,一键清理所有后台进程,自动加好友等等)AccessbilityService继承之Service,所以也遵循Service的生命周期,只是它...

2016-03-30 22:46:03 2412

原创 Android热修复Hotfix原理

插件化:一个程序划分为不同的部分,以插件的形式加载到应用中去,本质上它使用的技术还是热修复技术,让它支持大规模的代码更新以及资源和SO库的更新,将一个大apk改造成多个小apk,支持在线实时改变APP样式,在线更新添加功能等等(不用重新下载安装包安装)解决应用越来越大导致的各种限制(如65535方法数限制)热修复:当线上应用出现紧急BUG,为了避免重新发版,并且保证修复的及时性而进行的一项...

2016-03-30 22:39:45 1591 1

转载 免费的天气预报API接口--谷歌,雅虎,中央气象台

Google Weather API 仅仅支持美国地区使用邮政编码进行查询比如:       http://www.google.com/ig/api?hl=zh-cn&weather=94043       (94043 为 山景城, 美国加州 的邮政编码) 而除了美国以外的地区须要使用经纬度坐标作为參数才干运行 Google Weather API比如:  

2016-03-30 17:20:42 21653 1

原创 ContactsProvider系统源码导入配置AndroidStudio编译环境

一、配置AndroidStudio SDK的环境AndroidStudio配置使用自定义SDKAndroidStudio项目需要调用的API是我们自己framework增加的API时,由于默认使用的官方SDK.因此会找不到对应的API.解决方案是: 替换AndroidStudio SDK中的SDK为我们系统编译出来的SDK1.在我们系统源码linux中执行make sdk 生成a...

2016-03-02 23:37:21 1680

原创 AB 系统OTA升级介绍

A/B System 概述Android从7.0开始,引入了新的OTA升级方式 A/B System UpdatesA/B系统是指设备上有A和B两套可以工作的系统(用户数据只有一份,为两套系统共用),我们可以理解为一套系统分区,另外一套为备份分区.其系统版本可能一样,也可能不一样;通过升级,可以将旧版本也更新为新版本.当然,设备出厂时这两套系统肯定是一样的.Android 7.0上传统OTA方式和...

2016-02-05 18:27:24 15008 1

原创 Android APP性能优化之 ---- 优化监测工具(四)

Android ProfilerAndroidStudio中 工具栏--> View --> Tool Windows --> Android Profiler打开Android Profiler是一款使用非常简单的图形化工具,可以很好地监控系统或应用的内存、CPU、网络的使用情况Memory Analyzer Tool(MAT)MAT 是一个快速,功能丰富的 Java Heap...

2015-12-24 23:38:07 3273 1

原创 Android APP性能优化之 ---- 布局优化(一)

布局优化的核心思想是优化布局嵌套层级(层级越少,View绘制时越快)一、Android系统屏幕UI刷新机制首先需要明白一个概念,如果我们想要屏幕流畅的运行,就必须保证UI全部的测量、布局和绘制的时间在16ms内为什么是16ms? 因为人眼与大脑之间的协作无法感知超过60fps的画面更新,而16ms也就是每秒刷新60fps 16ms=1000/60Hz,也就是说超过16ms用户就会感知到卡...

2015-12-24 23:29:55 4333 2

原创 Linux常用基本命令&Android系统编译命令

Linux命令:touch 创建文件touch framework/base/Android.mk // 创建文件夹mkdir 创建文件夹cat 显示文件所有内容(合并文件)cat aa文件 bb文件(可以多个) > 合并到的aabb文件cat framework/base/Android.mk // 查看文件echo // 输出

2015-12-09 01:05:47 4364 1

原创 Android adb命令大全

adb命令:adb remount // 将system分区重新挂载为可读写分区 adb get-serialno // 获取序列号 adb reboot bootloader // 重启到bootloader,即刷机模式 adb reboot recovery // 重启到recovery,即恢复模式 adb shell cat /sys/class/net/wlan0/addres...

2015-12-09 01:00:34 3296 1

原创 Android屏幕截图实现方式 系统截屏源码分析和三指截屏

Android截屏的方式:1.获取DecorView截屏通过获取DecorView的方式来实现截屏(前提是当前Activity已经加载完成),DecorView为整个Window界面的最顶层View,因此截屏不包含状态栏(SystemUI)部分. View view = getWindow().getDecorView(); // 获取DecorView // 方式一: ...

2015-11-16 16:45:10 11259 3

原创 Android自定义相机,切换前后摄像头,照相机拍照

Android自定义相机,切换前后摄像头,照相机拍照Ctrl +C Ctrl+V 可以直接 run 起来,注释比较详细;源码下载

2015-11-09 18:16:21 13042 5

原创 Framework添加权限,系统服务AMS,PMS添加存储权限

查看当前进程所属的用户组1.通过过top命名查看,发现system_server PID 为2559xxx_ansen:/ #xxx_ansen:/ # topTasks: 225 total, 2 running, 208 sleeping, 0 stopped, 13 zombieMem: 8002760k total, 1630336k used, 63724...

2015-11-07 17:40:31 6666 3

原创 android自动更新时间时区机制

名词解释:NITZ:NITZ(Network Identity and Time Zone)或网络标识和时区,是一种用于自动配置本地的时间和日期的机制,同时也通过无线网向移动设备提供运营商信息。NITZ是自从PHASE 2+ RELEASE 96 的GSM中的可选功能,经常被用来自动更新移动电话的系统时钟。NTP:NTP(Network Time Protocol)提供准确时间

2015-11-07 17:39:36 13859 5

原创 Android获取GPS网络定位经纬度信息

定位一般分为是:GPS定位,WIFI定位,基站定位 和 AGPS定位GPS定位GPS定位需要手机GPS模块硬件支持.GPS走的是卫星通信的通道,在没有网络连接的情况下也能使用,并且通过GPS方式准确度是最高的但是比较耗电,绝大部分用户默认不开启GPS模块,从GPS模块启动到获取第一次定位数据,可能需要比较长的时间,室内几乎无法使用网络定位网络定位是指利用基站或Wi-Fi访问提供近似的位置信息,这种...

2015-11-07 17:38:57 3507 1

原创 Java设计模式_观察者模式&事件处理机制

1.什么是观察者模式:    观察者模式:定义了对象之间的一对多依赖,可以有任意个(一个或多个)观察者对象同时监听某一个对象;这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新.    观察者模式也叫发布/订阅模式,监听器模式    发布者+订阅者=观察者模式2.观察者模式的作用:    降低交互对象之间的耦合度java事件处理机制:

2015-11-07 17:38:22 3965 1

原创 Android屏幕录制源码Demo下载

Android实现屏幕录制的方式介绍两种,第一种是通过adb shell命令,还一种使用SDK的提供的方法实现.adb shell 命令语法: screenrecord [options] <filename>Sample: adb shell screenrecord /sdcard/demo.mp4 开始录制(录制手机屏幕; 视频格式为mp4,存放到手机...

2015-11-07 17:36:55 8224 7

原创 Android开发笔记 - 示例代码

非Activity判断当前是否处于分屏模式 public int getDockSide() { try { return WindowManagerGlobal.getWindowManagerService().getDockedStackSide(); } catch (RemoteException e) {

2015-11-07 17:36:27 3458

原创 android netty5局域网通讯(客户端+服务端)

这是一个WebSocket协议的Demo,仅仅粗略的实现了功能       WebSocket是HTML5开始提供的一种浏览器与服务器建进行全双工通讯的网络协议,它的出现是为了解决HTTP协议效率低下的问题,WebSocket能更好的节省服务器资源和带宽并达到实时通信!Demo下载Client:package com.tomorrow_p.netty_p;i

2015-10-28 23:38:33 6424

AndroidStudio工程环境系统源码ContactsProvider

直接在AS上编译系统源码.AndroidStudio工程环境系统源码ContactsProvider.配置步骤:https://blog.csdn.net/qq_25804863/article/details/50395998

2018-08-23

DrawerLayout+NavigationView的用法demo下载

https://blog.csdn.net/qq_25804863/article/details/48698737

2018-03-24

Battery historian windows源码,包含third_party

battery historian源码.go get-d -u github.com/google/battery-historian/同样可获取.包含third_party: closure-compiler: http://dl.google.com/closure-compiler/compiler-20160208.zip closure-library: https://github.com/google/closure-library flot-axislabels: https://github.com/xuanluo/flot-axislabels.git

2018-01-12

Battery historian windows源码

battery historian源码,go get-d -u github.com/google/battery-historian/同样可获取.由于上传大小限制不包含third_party,third_party另外上传

2018-01-12

Android开机向导设置系统语言,WiFi向导

Android开机向导setupwizard,设置系统语言,WiFi向导 详细介绍:http://blog.csdn.net/qq_25804863/article/details/48669149

2016-08-22

5.0_PackageInstaller源码分析

PackageInstaller源码分析有注释,详情blog:http://blog.csdn.net/qq_25804863/article/details/48697423

2016-04-26

Android自定义相机,切换前后摄像头,照相机拍照

Android自定义相机,切换前后摄像头,照相机拍照

2016-03-30

java事件处理机制Demo

Java设计模式__观察者模式&事件处理机制(直接适用于项目)

2016-02-06

android netty5局域网通讯(客户端+服务端)

android netty5局域网通讯(客户端+服务端),可以直接运行

2016-02-05

LeakCannaryEclipse_projec

leakcanary-leakcannary_eclipse_project

2015-12-24

Android系统当前时间日期的获取

整理出来的获取Android系统当前时间日期,看log

2015-11-17

中国地区雅虎WOEID

中国地区雅虎WOEID

2015-11-11

andriod录音wav文件&上传文件

andriod录音wav格式文件&上传各种文件

2015-11-06

Android常用对话框源码对话框大全

Android常用对话框源码--对话框大全,

2015-10-14

Android常用对话框源码

Android常用对话框源码,非常全的对话框

2015-10-14

java学习手册破解版

java学习手册破解版

2015-09-24

Android开源项目汇总

Android开源项目汇总 Android 开源项目软件apk Android 开源项目软件apk=============最全的自定义控件等等===========

2015-09-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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