Android开发( 右侧选择分类 )
androidproject

Android 动画详尽教程

Android Animation Detailed Tutorial / Android 动画详尽教程    中文讲解(README)请直接点击对应标题English explanation(or readme), Do not click on the title, please click on the tip address文章开篇总结性文章:《Android 一共有多少种动画?准确告诉你
564 人浏览
android01

Android源码解析(十五)-- Activity销毁流程

继续我们的源码解析,上一篇文章我们介绍了Activity的启动流程,一个典型的场景就是Activity a 启动了一个Activity b,他们的生命周期回调方法是:onPause(a) --> onCreate(b) --> onStart(b) --> onResume(b) --> onStop(a)而我们根据源码也验证了这样的生命周期调用序列,那么Activity的
556 人浏览
kotlin

Kotlin的面向对象编程,深入讨论继承写法的问题

因此本篇文章同时还会涵盖Kotlin继承与面向对象方面的知识。类与对象首先Kotlin中定义一个类很简单,如下所示:classPerson{ }这是一个空的类实现,可以看到,Kotlin中也是使用class关键字来声明一个类的,这点和Java一致。现在我们可以在这个类中加入字段和函数来丰富它的功能,这里我准备加入name和age字段,以及一个eat函数,因为任何一个人都有名字和年龄,也都需要吃饭
555 人浏览
kotlin

基本数据类型

在 Kotlin 中,所有东西都是对象,在这个意义上讲我们可以在任何变量上调用成员函数和属性。 一些类型可以有特殊的内部表示——例如,数字、字符和布尔值可以在运行时表示为原生类型值,但是对于用户来说,它们看起来就像普通的类。 在本节中,我们会描述 Kotlin 中使用的基本类型:数字、字符、布尔值、数组与字符串。一、数字Kotlin 处理数字在某种程度上接近 Java,但是并不完全相同。例如,对于
555 人浏览
cnbzlj

android removeRule的使用

今天,简单讲讲android里如何使用removeRule去动态改变布局。最近在修改代码时,发现横竖屏切换时需要动态的设置控件的RelativeLayout.LayoutParams,之前自己是每次切换就new一个RelativeLayout.LayoutParams,但是这样在效率上比较低。所以自己想优化时直接获取控件的RelativeLayout.LayoutParams然后动态的改变属性,这
552 人浏览
tinuv

StreamAPI中常用的方法

StreamAPI中常用的方法filter()lambda函数传入一个参数,返回符合条件的publicstaticvoidmain(String[]args){ List<String>strings=newArrayList<String>(){ { add("test1"); add("test2"); add(&quo
547 人浏览
kotlin

Kotlin编码风格

此页面包含当前 Kotlin 语言的编码风格一、命名风格如果拿不准的时候,默认使用Java的编码规范,比如:使用驼峰法命名(并避免命名含有下划线)类型名以大写字母开头方法和属性以小写字母开头使用 4 个空格缩进公有函数应撰写函数文档,这样这些文档才会出现在 Kotlin Doc 中二、冒号类型和超类 之间的冒号前要有一个空格,而实例和类型之间的冒号前不要有空格:interface Foo<o
547 人浏览
android01

Android源码解析之(一)-- Android项目构建过程

平时开发过程中我们通过android studio编写完成android项目之后直接点击 Run 'app'就可以在build/outputs/apk生成可以在android设备中安装的apk文件了,那么整个android源码的构建过程是怎么样的呢?我们可以根据Google官方提供的流程图来具体了解构建的过程:通常的构建过程就是如上图所示,下面是具体描述:1.AAPT(Androi
543 人浏览
cnbzlj

Android中Bitmap对象和字节流之间的相互转换

android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.
541 人浏览
cnbzlj

Okhttp3基本使用

I.简介HTTP是现代应用常用的一种交换数据和媒体的网络方式,高效地使用HTTP能让资源加载更快,节省带宽。OkHttp是一个高效的HTTP客户端,它有以下默认特性:支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接连接池减少请求延时透明的GZIP压缩减少响应数据的大小缓存响应内容,避免一些完全重复的请求当网络出现问题的时候OkHttp依然坚守自己的职责,它会自动恢复一般的连
537 人浏览
android00

Android Studio配置正式签名和debug签名

需求:如果应用中牵扯到第三方平台集成的话,调试是非常讨厌的一件事,因为很多第三方要求正式签名后生成的包才可以正常使用。所以,在debug模式下配置正式签名包,就可以解决问题。在主工程(一般都是app)下的build.gradle里,配置2个签名:signingConfigs{ release{ keyAlias'###' keyPassword'******'
534 人浏览
tinuv

反射学习(一)

理论学习Class类关于类的抽象,或者说,Class类描述了一个类,每个类中都有一个Class对象,在Java中,类是现实世界的一种抽象,或者说是一种描述,比如Person类,可以根据需求将人抽象成具有性别,年龄属性,能吃饭(方法)的一种实体,同样Class类也抽象了Java类中的一些特点.每一个类中都有一个Class对象,可以通过如下方法获得一个Class类的实例ClassstringClass
529 人浏览
android01

Android源码解析(七)-- Android之LruCache

android开发过程中经常会用到缓存,现在主流的app中图片等资源的缓存策略一般是分两级,一个是内存级别的缓存,一个是磁盘级别的缓存。作为android系统的维护者google也开源了其缓存方案,LruCache和DiskLruCache。从android3.1开始LruCache已经作为android源码的一部分维护在android系统中,为了兼容以前的版本android的support-v4
529 人浏览
android

Android Studio 修改主题样式

虽然Android Studio自带了三种主题样式,但是如果对这些主题样式都不满意,又不想自己一个一个去设置主题样式。可以去网上下载自己喜欢的主题样式并导入。首先说一下Android Studio自带主题的切换。打开AS菜单栏File->Settings->Appearance&Behavior->Appearance界面,里面有Theme选项,里面有Darcula、In
528 人浏览
android00

git-命令行常用命令集锦(

1、git clone从远程主机克隆一个版本库$gitclone<版本库的网址>该命令会在本地主机生成一个目录,与远程主机的版本库同名。如果要指定不同的目录名,可以将目录名作为git clone命令的第二个参数。$gitclone<版本库的网址><本地目录名>git clone支持多种协议,除了HTTP(s)以外,还支持SSH、Git、本地文件协议等,例如:$g
526 人浏览
bbsmax

深度递归必须知道的尾调用(Lambda)

引导语本文从一个递归栈溢出说起,像大家介绍一下如何使用尾调用解决这个问题,以及尾调用的原理,最后还提供一个解决方案的工具类,大家可以在工作中放心用起来。递归-发现栈溢出现在我们有个需求,需要计算任意值阶乘的结果,阶乘我们用 n!表示,它的计算公式是:n! = 123……(n-1)n,比如说 3 的阶乘就是 123。对于这个问题,我们首先想到的应该就是递归,我们立马写了一个简单的递归代码://阶乘计
520 人浏览
android01

Android源码解析(二十二)-- Toast的加载绘制流程

前面我们分析了Activity、Dialog、PopupWindow的加载绘制流程,相信大家对整个Android系统中的窗口绘制流程已经有了一个比较清晰的认识了,这里最后再给大家介绍一下Toast的加载绘制流程。其实Toast窗口和Activity、Dialog、PopupWindow有一个不太一样的地方,就是Toast窗口是属于系统级别的窗口,他和输入框等类似的,不属于某一个应用,即不属于某一个
515 人浏览
android01

Android源码解析之(五)-- Android之IntentService

什么是IntentService?简单来说IntentService就是一个含有自身消息循环的Service,首先它是一个service,所以service相关具有的特性他都有,同时他还有一些自身的属性,其内部封装了一个消息队列和一个HandlerThread,在其具体的抽象方法:onHandleIntent方法是运行在其消息队列线程中,废话不多说,我们来看其简单的使用方法:定义一个IntentS
509 人浏览
cnbzlj

android轮播图Banner的使用及详解

今天带给大家一个比较实用的轮播图框架,banner1.导入依赖Gradledependencies{ compile 'com.youth.banner:banner:1.4.10' //最新版本 }或者引用本地libcompile project(':banner')2.添加权限<uses-permission android:name="android.permissio
509 人浏览
tinuv

Java正则表达式简单学习

与正则表达式相关的类Pattern类Pattern 模式,代表匹配的模式,Pattern没有公共的构造方法,只有一个私有的构造方法privatePattern(Stringp,intf)通常使用静态方法compile()来生成一个Pattern对象publicstaticPatterncompile(Stringregex)compile()方法的参数就是一个正则表达式,正则表达式待会再说.Mat
508 人浏览