Kitty_Landon的专栏

正在充电......

Android 预置应用

Android如何将第三方应用预置到手机中?分析下该需求,预置第三方应用,要求可卸载,恢复出厂设置后可恢复这些应用。就需要将这些应用预置到system下面,如果放到data下面恢复出厂设置后就不能恢复这些应用了。 一、代码设计 1、创建“/system/presetapp”目录,将预置应用保存到该...

2018-04-03 16:42:39

阅读数:216

评论数:0

Android性能优化 -- 布局优化

一、前言 根据Google官方出品的Android性能优化典范,60帧每秒是目前最合适的图像显示速度,事实上绝大多数的Android设备也是按照每秒60帧来刷新的。为了让屏幕的刷新帧率达到60fps,我们需要确保在时间16ms(1000/60HZ)内完成单次刷新的操作(包括measure、lay...

2018-03-01 14:14:25

阅读数:130

评论数:0

Android性能优化 -- 应用启动优化之启动页设计

上篇博客我们学习了应用启动优化的一些优化思路,经过这些优化后,如果还不能达到你的要求,我们一般会做个启动页。因为启动页一般View数量比较少,业务逻辑比较简单,因此启动比较快。一、设计思路常规启动页设计思路通常点击桌面就会执行Application中的逻辑,然后会跳入启动页SplashActivi...

2018-02-08 18:01:39

阅读数:180

评论数:0

Android性能优化 -- 应用启动优化

应用的启动 启动方式 通常来说,在Android中应用的启动方式分为两种:冷启动和热启动。 1、冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动。 2、热启动:当启动应用时,后台已有该应用的进程(例:按back键...

2018-02-07 16:26:06

阅读数:202

评论数:0

Android性能优化 -- 应用启动优化之DelayLoad

对于应用启动优化,其实核心思想就是在启动过程中少做事情,具体实践的时候无非就是下面几种:     1. 异步加载;     2. 延时加载;     3. 懒加载。     我们这篇博客主要学习一下一种延时加载(DelayLoad)的实现及其原理。DelayLoad的实现是非常简单的,但是...

2018-02-06 11:34:03

阅读数:289

评论数:0

Android性能优化 -- Memory Monitor工具检测内存泄露

这里我们通过一个例子来学习Memory Monitor工具的使用。 示例 package com.android.test; import android.content.Context; public class UserManger { public static Use...

2018-02-02 09:01:24

阅读数:203

评论数:0

Android 从setContentView谈Activity界面的加载过程

Android窗口     先来了解下Android系统的窗口布局。当我们设置窗口的Theme为可见样式时,Android的窗口如下图:     查看Activity的源码,Activity中有一个私有成员Window(mWindow),而Window是一个抽象类,它提供了绘制窗口的一组通用A...

2018-01-31 16:05:37

阅读数:174

评论数:0

Android性能优化 -- Systrace工具

Systrace简介     一般来说,我们的机器以60帧/秒显示时,用户会感觉机器很流畅,如果显示时出现丢帧的情况,需要知道当前整个系统所处的状态,这个时候Systrace便是最佳的工具选择。     Systrace是Android4.1中新增的性能数据采样和分析工具。它可帮助开发者收集A...

2018-01-30 10:43:18

阅读数:3481

评论数:0

Android性能优化 -- TraceView工具

TraceView是什么     TraceView是Android SDK中内置的一个数据采集和分析工具,它可以加载trace文件,用图形的形式展示代码的执行时间、次数及调用栈,找出最需要优化的点。     trace文件是log信息文件的一种,可以通过代码,Android Studio,或...

2018-01-26 13:31:39

阅读数:166

评论数:0

Android性能优化 -- 内存管理机制

1、初识内存优化 在Android的性能优化的各个部分里,内存的问题绝对是最令人头疼的一部分,虽然Android有垃圾自动回收机制不需要手动干预,但也正因为此,出现内存问题,如内存泄漏和内存溢出等,如果对内存管理机制不熟悉,会更加难以排查问题。 因为内存方面的知识较多且不易理解,内存优化部分就...

2018-01-24 09:27:28

阅读数:135

评论数:0

Android应用管理四 -- APK包的安装、卸载和优化(PackageManagerService)

http://www.oneplusbbs.com/thread-759852-1-1.htmlhttp://blog.csdn.net/kc58236582/article/details/53393570什么是ODEX?Android应用程序中有一个叫做classes.dex的文件,这是Jav...

2018-01-23 17:52:03

阅读数:324

评论数:0

Android7.0 Doze模式

在Android M中,Google就引入了Doze模式。它定义了一种全新的、低能耗的状态。在该状态,后台只有部分任务被允许运行,其它任务都被强制停止。这里我们就来分析一下Android 7.0中Doze模式相关的流程。基本原理基本原理        Doze模式可以简单概括为:        若...

2018-01-18 17:23:09

阅读数:1189

评论数:0

Android事件分发机制

UI界面组成 /** * Abstract base class for a top-level window look and behavior policy. An * instance of this class should be used as the top-level v...

2018-01-15 18:15:28

阅读数:146

评论数:0

Java虚拟机内存管理(二)--垃圾收集器及内存分配策略

概述     Java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的(尽管在运行期会由JIT编译器进行一些优化,但在本章基于概...

2018-01-11 14:51:59

阅读数:105

评论数:0

HashMap的理解

HashMap为什么是线程不安全的?     一直以来只是知道HashMap是线程不安全的,但是到底HashMap为什么线程不安全,多线程并发的时候在什么情况下可能出现问题?       HashMap底层是一个Entry数组,当发生hash冲突的时候,HashMap是采用链表的方式来解决的,...

2018-01-10 17:30:08

阅读数:131

评论数:0

避免后台进程被杀死的几种方法

Android的几种进程 前台进程     即与用户正在交互的Activity或者Activity用到的Service等,如果系统内存不足时前台进程是最后被杀死的。 可见进程     可以是处于暂停状态(onPause)的Activity或者绑定在其上的Service,即被用户可见,但由于...

2018-01-09 10:54:03

阅读数:2857

评论数:0

Android多线程--Android中常见的四种线程池

前言     使用线程池可以给我们带来很多好处,首先通过线程池中线程的重用,减少创建和销毁线程的性能开销。其次,能控制线程池中的并发数,否则会因为大量的线程争夺CPU资源造成阻塞。最后,线程池能够对线程进行管理,比如使用ScheduledThreadPool来设置延迟N秒后执行任务,并且每隔M秒...

2018-01-09 10:50:34

阅读数:129

评论数:0

实现线程同步的几种方式

为什么要使用同步     Java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查),将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程调用,从而保证了该变量的唯一性和准确性。     Java提供了一种内置的锁机制来支...

2018-01-09 10:41:08

阅读数:3801

评论数:0

Android广播管理一--Broadcast机制介绍

在Android系统中,广播(Broadcast)是在组件之间传播数据(Intent)的一种机制;这些组件甚至是可以位于不同的进程中,这样它就像Binder机制一样,起到进程间通信的作用。     在Android系统中,为什么需要广播机制呢?广播机制,本质上它就是一种组件间的通信方式,如果是两个...

2018-01-09 10:25:50

阅读数:211

评论数:0

Android广播管理二--广播注册(registerReceiver)流程分析

前面分析了Android系统的广播机制,从本质来说,它是一种消息订阅/发布机制。因此,使用这种消息驱动模型的第一步便是订阅消息;而对Android应用程序来说,订阅消息其实就是注册广播接收器。         接下来,我们继续分析Android应用程序是如何注册广播接收器的,以及把广播接收器注册到...

2018-01-09 10:17:07

阅读数:1418

评论数:0

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