自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android长截屏(滚动截屏)实现原理

Google原生Android系统到目前为止均没有长截屏这一功能,而对于用户而言,这是一个非常实用的功能,如聊天记录,新闻页面等较长的页面想通过一张图片的形式保存起来.好在国内主流手机厂商均已实现了该功能,接下来聊聊我们长截屏的实现原理.长截屏原理概述:我们简单的把一个屏幕分成三分,上中下,中间区域最大,中间区域也就是滑动区域;长截屏开始,我们截取顶部的图片保存到集合中,截取长度如下,然后...

2015-09-24 01:07:50 22940 5

原创 Fastboot命令

Fastboot,英语翻译意思是快速启动。在安卓手机中fastboot是一种比recovery更底层的刷机模式(俗称引导模式)。Fastboot源码路径: \bootable\bootloaderFastboot编译后路径: out/host/linux-x86/bin/fastboot进入Fastboot目前主流Android手机进入Fastboot的方式为【音量-】+【电源键】;...

2015-09-24 01:05:56 5873 1

原创 Android Socket通讯TCP和UDP协议Demo

网络通信三要素: IP -- 端口 -- 协议(UDP、TCP)TCP协议特点: 可靠,速度慢建立连接通道,数据无限制,面向连接(在正式收发数据前,必须和对方建立可靠的连接,三次对话才能建立连接)UDP协议特点: 不可靠,但速度快把数据打包,数据有限制,面向无连接(不与对方建立连接,而是直接就把数据包发送过去)共同点: 同属于传输层协

2015-09-24 01:03:53 7599 1

原创 Android 8.0刘海屏适配

由于刘海屏设备上市时运行的是 Android O 设备,而 Android O 没有标准接口来适配刘海屏设备,因此各大厂商针对Android O刘海屏适配方案也各有差异,具体如下:华为刘海屏手机安卓O版本适配指导小米刘海屏 Android O 适配OPPO凹形屏适配说明VIVO全面屏应用适配指南后来 Android P 中新增了刘海屏适配的API,因此开发者需要针对 An...

2015-09-24 01:01:13 7039

原创 DrawerLayout+NavigationView的用法例子demo下载

Demo效果:下载DrawerLayout将DrawerLayout作为根布局其次是Toolbar,内容区域FrameLayout和左侧滑出后的导航栏NavigationView主页面布局文件:<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="...

2015-09-24 00:57:41 7399 1

原创 Java常见算法示例

算法:    排序算法的基本算法(三种)冒泡:(每轮排序获取到一个最大值,所以每轮减去排序的次数,-1是防止越界)    每相邻的两个数据比较,如果第一个比第二个大,就交换public staticvoid bubbleSort(int []datas){ for (int i = 0; i <datas.length-1;i++) {//排序的次数 for...

2015-09-24 00:44:17 6112 2

原创 Android APP 提高进程服务优先级 常驻内存 服务杀不死

首先明确,国内定制的系统(小米,华为,OPPO等)都实现了 无论自启或提升进程优先级的策略都能被杀死,而对于用户量大的APP(如微信)和系统级别APP 系统有做白名单;抛开那些定制系统,还是有很多原生系统没有这些策略,或者说那些系统优化策略不彻底,因此我们提升进程优先级才变得有意义1.针对系统签名APP 进程永驻(系统级别的kill和forceStop也杀不死)添加android:persiste...

2015-09-24 00:43:20 9647 1

原创 Shell脚本

Shell Samples:#!/bin/bash //"#!" 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shellecho "Hello World !" //echo命令用于向窗口输出文本>> 加法运算脚本#! /bin/bashecho "input first number:"read param1echo "input sec

2015-09-24 00:42:02 5824

原创 Android_PackageInstall源码

PackageInstall阅读packageInstall源码我们的突破口是从程序的窗口开始,首先查看AndroidManifest文件中activity的定义PackageInstallerActivity: 窗口指定了两个IntentFilter,因此两种方式调用该窗口,两种方式都定义了action:android.intent.action.INSTALL_PAC

2015-09-24 00:40:53 10341 1

原创 Netty Http协议栈开发(客户端&服务端)

协议栈是指网络中各层协议的总和, 反应了一个网络中文件传输的过程: 由上层协议到底层协议,再由底层协议到上层协议.一.Netty Http+Json 协议栈开发时序图:1. 构造请求信息,编码为http+json Netty的http协议栈提供了构造http请求消息的相关接口2. 客户端发起http请求3. 服务端对客户端

2015-09-24 00:39:31 10445 1

原创 Android系统Framework定制默认值预置修改

1. 配置SELinux权限SELinux(或SEAndroid)主要将app划分为三种类型(根据user不同,也有其他的domain类型):1)untrusted_app 第三方app,没有android平台签名,没有system权限2)platform_app 有android平台签名,没有system权限3)system_app 有android平台签名和system权...

2015-09-24 00:38:31 9466

原创 MVC和MVP架构对比区别 mvp示例代码demo

- 为什么软件开发需要使用架构?软件开发的黄金法则是避免创建上帝类(无所不知无所不能的上帝类),因为上帝类的维护成本很高,我们很难理解正在进行的操作和难与测试和扩展;在Android开发中,如果不考虑架构,activity类就会越来越大,因为activity中同时存在业务逻辑和UI逻辑,这会增加跟多的维护成本.- 为什么使用MVP模式?产品迭代开发中,Activity类的职责不断增加,

2015-09-24 00:37:38 5584

原创 Monkey常用基本命令

Monkey命令语法:[adb shell] monkey [options] 例如: adb shell monkey -v 500// 产生500次随机事件Monkey的分类 [options]常用选项--help: 打印帮助信息-v:指定打印信息的详细级别(一个-v增加一个级别,默认级别为0)(Level 0) 缺省值,仅提

2015-09-24 00:36:15 5658

原创 Android内存泄露OOM的原因及解决方法

什么是内存溢出? OOM(out of memory)即内存溢出.在程序中,对内存使用超过一定的阀值就会导致内存溢出,而new出来的Object对象在使用完后触发GC也无法被回收 叫做内存泄漏 OOM的可能导致的现象? 1.程序卡顿,响应速度慢(内存占用高时JVM虚拟机会频繁触发GC) 2.由于APP运行内存限制,会导致直接崩溃(OutOfMemoryError) 3...

2015-09-24 00:34:37 9547 1

原创 AndroidActivity自定义切换动画,左右滑动切换activity

Android实现activity切换效果的两种方式:首先在res下创建anim文件夹,并且创建out_from_left.xml和in_from_right.xml两个动画资源### 调用方法实现Android2.0开始在Activity增加了一个方法:public void overridePendingTransition (int enterAnim, int exit

2015-09-24 00:33:21 5966

原创 Android Runtime (ART)和apk的预编译

什么是Android Runtime (ART)2014年的Google I/O大会上,Google发布了Android 4.4操作系统,其中有一个环节着重介绍了ART (Android runtime),ART 是 Android 上的应用和部分系统服务使用的托管式运行时环境.从Android 5.0开始,ART替换了Dalvik虚拟机,同时ART也完全兼容Dalvik.Java的几种虚拟机介绍...

2015-09-24 00:31:37 6679 1

原创 Android所有对话框_dialog大全

Android在dialog做得封装的得很充分,常用的dialog都封装好了.如果还觉得不够,Android提供用户自定义dialog.先看图:代码部分:package com.tomorrow_p.dialog_p;import android.app.Activity;import android.app.AlertDialog;im

2015-09-23 21:36:32 7494 1

原创 Android自定义软键盘输入法,隐藏系统输入法显示光标的实现

android实现自定义软键盘,先上图看效果,效果基本上是仿ios输入法实现的

2015-09-23 20:05:28 9434 1

原创 JobScheduler用法

JobScheduler是Android L(API21)5.0新增的特性,它可以将作业推迟(合并)到稍后或指定条件下(如设备充电或连入 WLAN 时)执行来优化电池寿命JobScheduler文档JobScheduler 例子近几个android版本中针对电量优化功能JobScheduler用法:1.创建一个MyJobService继承自JobService(具体业务逻辑实现)...

2015-09-23 01:55:51 7322

原创 制作OTA升级整包增量包

制作OTA升级包 OTA包有整包和差分包之分.顾名思义,所谓整包就是包含整个system分区的数据文件;而差分包则仅仅包含两个版本之间改动的部分.使用整包升级就好比对电脑进行重装系统,格式化系统分区,然后将新系统数据写入分区,而差分包升级不会格式化system分区,只是对其中差异部分内容进行重写.OTA 软件包工具build/tools/releasetools 中提供的 ota...

2015-09-23 01:54:35 7688

原创 Android系统源码framework SystemUI导入eclipse编译

Android系统源码framework SystemUI导入eclipse编译

2015-09-23 01:53:47 8917

原创 android系统启动流程

Android系统的启动流程一、init进程启动1.按下Power键,引导芯片代码从预定义的地方(固化在ROM(read only memory)的预定义位置) 开始加载引导程序 BootLoader到RAM(random access memory),然后执行引导程序(bootloader)引导程序BootLoader是Android系统运行前的第一个程序,它的主要作用是把系统OS拉起...

2015-09-23 01:52:09 7100

原创 Android系统源码Settings导入eclipse

## 导入Settings到eclipse> Settings路径: cm13.0/repo/packages/apps/Settings## 一、通过Android.mk文件查找依赖库

2015-09-23 01:51:21 7321 1

原创 Android DrawableShape资源的用法,Shape属性,Shape开发

Android shape资源的用法 -<!-- rectangle 矩形 --><!-- 固定颜色与 --> <!-- 渐变颜色 --> <!-- 边角弧度 --> <!-- 内边距 --> <!-- 外部的边界,dashWidth表示每段的长度,dashGap表示段与段之间的间隔 -

2015-09-23 01:49:48 7402 1

原创 Android架构设计规范

命名规范包名全部采用小写常量、枚举等均采用大写形式,用下划线区分各单词。使用static finalprivate static final String TAG = "XXXX"类名、接口名、枚举名。第一个和后面的单词都要第一个字母大写MainActivity,InstalledAppDetails资源文件命名activity_main.xml,ic_launcher.png注意图

2015-09-23 01:48:40 4735

原创 Android系统卡顿问题分析笔记

卡顿问题描述 引起用户投诉主要问题如下:1.游戏卡顿问题; 2.待机唤醒慢问题; 3.升级后系统没有升级前好用; 4.自研应用反应慢 5.系统长时间使用变慢 6.后台进程多 7.运行内存少卡顿关键因子分析应用问题 Layout布局问题 列表界面滑动效果及数据加载问题 应用冷启动速度慢 应用异常引起卡顿 内存泄漏 系统问题...

2015-09-23 01:47:40 5273

原创 BatteryHistorian环境搭建配置

BatteryHistorian环境配置1.Go语言环境配置1.下载安装(go1.8.windows-amd64.msi)https://www.golangtc.com/download 官方(https://golang.org/doc/install#testing)2.配置环境变量C:\Go\bin;2.Python环境配置下载安装(Python2.7)http...

2015-09-23 01:46:37 5304

原创 AndroidStudio导入系统源码DeskClock编译生成系统签名apk

DeskClock源码路径:/repo/packages/apps/DeskClock/导入DeskClock源码到AndroidStudio1.拷贝源码到AS工程使用AndroidStudio创建DeskClock工程,指定Android源码相同的包名把DeskClock中src、res、AndroidManifest.xml、assets复制到创建的AS工程中...

2015-09-23 01:45:49 6290 1

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

Android的框架设计有考虑到开机向导这一场景,因此我们实现开机向导参考Android的Provision.apkProvision: MSM8976/repo/packages/apps/Provision它的主要作用是作为开机引导用户进行一些基本设置.在原生的 android 系统中,provision非常的简单,只有一个空白的 activity,这个主要就是留给 厂商自己定制开机向

2015-09-23 01:42:45 21548 6

原创 Android.mk编译脚本 & AndroidManifest.xml编写及注释

更新时间: 2019.04.17AndroidManifest.xml:android:sharedUserId="android.uid.systemui" //SystemUI属于系统apkcoreApp="true" //SystemUI属于核心apkandroid:persistent="true" //SystemUI不会被KILL,即被KILL后会自动重...

2015-09-23 01:34:36 12325 8

原创 git & repo 常用命令

Git常用命令:配置全局的email和用户名:git config --global user.email "ansen"git config --global user.name "ansen360@126.com"git brach //查看分支情况git branch mybranch //创建分支git branch -a //查看所有分支git bra

2015-09-19 02:28:48 4564

原创 Android代码检测优化之StricMode

StrictMode类是Android 2.3 (API 9)增加的一个工具类;可以用来帮助开发者改进所编写的应用代码.并且提供各种策略随时检查和报告开发者所存在的问题官方文档(Google中国)使用StrictMode在应用程序入口Application,Activity或者其他Application组件的onCreate()方法中调用以下代码开启StrictMode:

2015-09-19 02:25:39 5343

原创 Android视频转换GIF图片Bitmap转GIF

仿Iphone拍摄动态GIF图的实现思路同此:1秒内连拍多张图片(Bitmap),将图片的集合按如下方式制作GIF图片实现原理:1.读取视频文件,将视频文件解析为Bitmap序列2.将Bitmap 序列编码生成 GIF 文件代码下载代码流程打开Android系统文件管理: Intent intent = new Intent(); int...

2015-09-19 02:22:21 6353 2

原创 Android APP性能优化之 ---- APK瘦身 App启动优化

APK资源占用情况分析: Android Studio工具栏中,打开build–&amp;amp;amp;gt;Analyze APK,选择要分析的APK包APK分析页面如下:res: 用来存放资源文件,会自动生成对应的 ID 并映射到 .R 文件中,访问直接使用资源 IDclasses.dex: Dalvik 字节码程序,Dalvik虚拟机执行文件,一般情况下,Android 应用在打包时通过 A...

2015-09-19 02:06:35 4945

原创 Android内存进程管理,Low Memory Killer机制

Android内存管理

2015-09-19 02:03:29 6153

原创 JNI实现Java调用C代码Demo AndroidStudio

JNI(Java Native Interface)的本意是Java本地调用,它是为了方便java调用C/C++等本地代码所封装的一层接口 Android NDK(Native Development Kit )是一套工具集合,通过NDK可以在Android中更加方便的使用JNI来访问本地代码使用JNI的好处: - 1.提高代码安全性,本地C代码反编译困难 - 2.方便的使用成熟C开

2015-09-19 01:57:40 4913

原创 Android蓝牙开发和BLE通讯Demo

[源码地址](https://github.com/ansen360/CodeRepository/tree/master/app/src/main/java/com/code/bluetooth)

2015-09-19 01:37:26 7097

原创 APK的安装流程及PackageManagerService源码解析&静默安装

Android APK的安装卸载流程及PackageInstall源码解析&静默安装

2015-09-19 01:36:02 6881

原创 Java实现定时任务的几种方式

Thread 最普通方式(不推荐) Runnable runnable = new Runnable() { public void run() { SystemClock.sleep(8000); System.out.println("thread"); } }; Th...

2015-09-19 01:34:08 4256

原创 Android APP性能优化之 ---- 代码优化(三)

编码优化相关: - 避免创建不必要的对象创建新的对象都需要额外的内存空间,要尽量减少创建短生命周期的临时对象;减少对象的创建就能减少垃圾收集,进而提升性能场景:1.频繁的字符串拼接使用StringBuffer或者StringBuilder,而不是加号拼接,因为使用加号拼接会产生中间字符串内存块,拼接的字符串越长,性能越低.2.尽量使用基本数据类来代替对象数据类型(int比Integ...

2015-09-19 01:30:07 4737

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

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