
android基础知识
wangrcheng
这个作者很懒,什么都没留下…
展开
-
Android Bitmap理解
Bitmap介绍Bitmap是Android系统中的图像处理中最重要类之一。Bitmap可以获取图像文件信息,对图像进行剪切、旋转、缩放,压缩等操作,并可以以指定格式保存图像文件。创建Bitmap有两种方法可以创建Bitmap对象,分别是通过Bitmap.createBitmap()和BitmapFactory的decode系列静态方法创建Bitmap对象。Bitmap的静态方法c原创 2017-10-16 20:38:46 · 873 阅读 · 0 评论 -
如何提升Android Studio速度
现在Android Studio的构建速度已经比以前快了很多,但当项目较大时还是需要做一些优化处理,在优化之前需要分析Gradle执行构建生命周期的每个阶段和每个构建任务所需的时间。分析构建耗时1、清空构建,相当于初始化,这样可以确保能分析到完整的项目构建过程gradlew clean2、使用下面命令执行构建,并且生成构建过程耗时报告gradlew --profil...原创 2018-06-09 22:41:02 · 1245 阅读 · 0 评论 -
RecyclerView常用功能全面总结
简介RecyclerView可以说是做Android应用开发使用最广的几个控件之一。它是在Android 5.0版本引入进来的,位于support-v7包中,可以通过在build.gradle中添加如下代码将它引入到项目中: implementation 'com.android.support:recyclerview-v7:27.1.1'和ListView的比较在Rec...原创 2018-06-24 21:15:11 · 2164 阅读 · 0 评论 -
Android 动画使用总结(一)属性动画
介绍属性动画是在API 11加入的新特性,它对原来的View动画做了很大的增强。它的API 主要都放在android.animation下,如图: 这其中比较重要的有: 类 介绍 ValueAnimator 它是改变值,然后通过这个值去改变对象的属性值,从而达到动画效果 ObjectAnimator ValueAnimator的子类,它是直接作用...原创 2018-05-21 23:11:46 · 247 阅读 · 0 评论 -
IntentService使用详解
介绍在Android中可以通过Service和IntentService创建服务:Service 这是适用于所有服务的基类。扩展此类时,必须创建一个用于执行所有服务工作的新线程,因为默认情况下,服务将使用应用的主线程,这会降低应用正在运行的所有 Activity 的性能。IntentService这是 Service 的子类,它使用工作线程逐一处理所有启动请求。如果您不...原创 2018-05-14 22:58:03 · 699 阅读 · 0 评论 -
深入理解Android消息机制
Android中与消息机制相关的主要类有Looper、Handler、Message和MessageQueue。LooperLooper是线程消息循环处理器,正是由它不停的去从MessageQueue中获取Message,然后交给Handler处理。每个线程只能有一个Looper,在Android中只有主线程默认创建有Looper对象,其余线程需要自己创建。下面结合源码来深入理解一...原创 2018-05-04 22:25:03 · 216 阅读 · 0 评论 -
深入理解Android ANR
ANR简介ANR(Application Not Responding)意思是程序未响应,只要在主线程做了耗时操作,造成主线程拥堵就会发生ANR,常见的触发条件有如下:InputEvent, 程序在5S内未对用户的触摸和输入事件做出反馈即会触发ANR ActivityManagerService.java // How long we wait until we time...原创 2018-04-30 23:06:26 · 713 阅读 · 0 评论 -
自定义View的理解
View的绘制流程是从ViewRoot的performTraversals方法开始的。MeasureSpace代表一个32位的int值,高2位代表SpaceMode,低30位代表SpaceSize。SpaceMode分三类:==UNSPECIFLED==:父容器不对View的大小做限制,要多大给多大==EXACTLY==:父容器已经检测出了View的精确大小,这个模式下Vi...原创 2018-03-11 21:28:43 · 202 阅读 · 0 评论 -
ViewModel+LiveData
Android在前段时间正式发布 Android 架构组件 1.0 稳定版,里面包含Lifecycles,LiveData,ViewModel,Room。这里主要记录一下LiveData和ViewModel配合使用。LiveDataLiveData 是一款基于观察者模式的可感知生命周期的核心组件。LiveData 为界面代码 (Observer)的监视对象 (Observable),当...原创 2018-02-27 11:07:03 · 4530 阅读 · 0 评论 -
Android监听通讯录修改,然后上传修改部分
需求由于项目需要所以在app登录之后都有获取一份本地的通讯录然后上传到服务器。但是最近后台的小伙伴一直反馈说如果每次前端都把整个的通讯录上传过去,然后后台再做比较、去重、再插入数据库的话这样给服务器的压力会比较大。仔细一想其实也是,如果用户的通讯录没有改变那么上诉的所有操作都是白费的。于是我们前端要做到除了用户第一次全部上传外,以后只有在通讯录发生改变的时候才上传修改的部分通讯录。为了实现以上的需求原创 2017-12-12 21:04:22 · 2247 阅读 · 0 评论 -
AIDL的基本使用
本篇主要是简单的演示了AIDL的基本使用,最终实现的效果是当app运行时有两个进程,从app进程发送数据到remoteapp进程,然后返回数据,在app进程展示。其实这就是一个跨进程的数据交互过程,下面介绍一下具体步骤。新建工程,然后再新建一个module 命名为remoteapp 设置为com.android.library 做为新开的进程,然后开始具体的AIDL操作。1,在remoroapp中创原创 2017-11-28 21:25:21 · 235 阅读 · 0 评论 -
RxJava学习之线程控制
RxJava线程控制原创 2017-10-12 21:39:43 · 333 阅读 · 0 评论 -
Android视频加水印和压缩
Android视频加水印目前来说大致有3种方式可以实现:利用Android原生Api MediaCodecOpenGL FFmpeg这里只是把自己在网上搜集到的资料做个总结,和自己的修改记录一下。第一种利用MediaCodec 这种原生的实现方式暂时还没找到实现的方式 第二种利用OpenGL http://blog.youkuaiyun.com/qqchenjian3原创 2017-10-22 14:44:13 · 7763 阅读 · 0 评论 -
Rxjava学习(一)
Android项目中引入Rxjava 在Android中使用RxJava2非常简单, 只需要在Gradle配置: compile 'io.reactivex.rxjava2:rxjava:2.1.0' compile 'io.reactivex.rxjava2:rxandroid:2.0.1'主要类介绍 Observable 被观察者(事件源),不处理背压 Obse原创 2017-10-12 21:14:36 · 306 阅读 · 0 评论 -
Android之Fragment
一,Fragment的介绍 Fragment,俗称碎片,自 Android 3.0 开始被引进并大量使用。之所以会引进它主要是为了解决Android碎片化严重的问题。 你可以把Fragment当成Activity的一个界面的一个组成部分,甚至Activity的界面可以完全有不同的Fragment组成,更帅气的是Fragment拥有自己的生命周期和接收、处理用户的事件,这样就不必原创 2017-10-11 21:32:01 · 325 阅读 · 0 评论 -
Android之Activity
Android之ActivityActivity作为Android四大组件之一可以说是最常见也是最重要的,它主要承担着用户于屏幕交互的职责,对它的理解主要从以下几个方面开始:Activity的使用Activity的生命周期Activity的启动模式对于Activity的使用 创建Activity 一般会指定应用中的某个 Activity 为“主”Activity原创 2017-10-09 22:50:43 · 217 阅读 · 0 评论 -
Android最新相机(Camera)拍照、拍视频全面总结
介绍拍照或者拍视频应该是大多数APP都需要去实现的功能,可以说这是既常用又容易出错的地方。比如在Android 6.0之后需要动态申请权限,Android 7.0之后将文件路径由file://修改为content://等等。特别是Android自身对相机都设计了两套API,android.hardware.Camera和android.hardware.camera2,由此可见需要对相机功...原创 2018-06-27 21:47:43 · 7256 阅读 · 0 评论