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

Android源码解析(十六)-- Android应用进程Context创建流程

今天讲讲应用进程Context的创建流程,相信大家平时在开发过程中经常会遇到对Context对象的使用,Application是Context,Activity是Context,Service也是Context,所以有一个经典的问题是一个App中一共有多少个Context?这个问题的答案是Application + N个Activity + N个Service。最后我们得出结论,应用进程的起始方法
3171 人浏览
kotlin

基本数据类型

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

android ButterKnife的简单使用

Butter KnifeAttention: Development on this tool is winding down. Please consider switching toview binding in the coming months.Field and method binding for Android views which uses annotation processi
3165 人浏览
tinuv

RxJava操作符(二)

distinct操作符从词义可以知道,他是筛选出不同的发射的元素给观察者,很简单如:importio.reactivex.*; importio.reactivex.functions.Consumer; importio.reactivex.functions.Function; importjava.util.ArrayList; importjava.util.List; publ
3156 人浏览
android01

android源码解析(三十)--触摸事件分发流程

前面一篇文章中我们分析了App返回按键的分发流程,从Native层到ViewRootImpl层到DocorView层到Activity层,以及在Activity中的dispatchKeyEvent方法中分发事件,最终调用了Activity的finish方法,即销毁Activity,所以一般情况下假如我们不重写Activity的onBackPress方法或者是onKeyDown方法,当我们按下并抬起
3154 人浏览
android01

Android源码解析(二十三)-- Android异常处理流程

前面的几篇文章都是讲解的android中的窗口显示机制,包括Activity窗口加载绘制流程,Dialog窗口加载绘制流程,PopupWindow窗口加载绘制流程,Toast窗口加载绘制流程等等。整个Android的界面显示的原理都是类似的,都是通过Window对象控制View组件,实现加载与绘制流程。这篇文章休息一下,不在讲解Android的窗口绘制机制,穿插的讲解一下Android系统的异常处
3117 人浏览
cnbzlj

android 使用web浏览器打开指定页面

今天,简单讲讲android里如何使用浏览器打开指定的网页。之前,我做一个功能时,服务器返回一个url地址,我需要跳转到指定网页。却发现自己不知道怎么做,在网上搜索了资料,最终是解决了问题。这里记录一下。启动android默认浏览器在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器。如果手机本身安装了多个浏览器而又没有设置默认浏览器的话,系统将让用户选择使用哪个浏览器来打
3096 人浏览
tinuv

Android自定义组合控件基础

自定义组合控件我以前没有用过,对我来说是一个新的领域,由于今天的时间很少了,没有很只学了一点点,但也记录下来,作为一个开头.实现一个最简单的组合控件实现组合控件很关键的一点是动态加载布局,就是使用LayoutInflater来动态加载布局,加载完了之后基本上一个最简单的组合控件就算完了.组合控件在统一界面风格方面的作用很大,尤其是重用的时候,可以减少很多代码冗余,因为在组合控件可以处理一些公共的逻
3090 人浏览
cnbzlj

android 根据文件Uri获取图片url

今天,简单讲讲android里如何通过文件的Uri获取文件的路径url。昨天,我讲了如何调用手机的文件管理器获取文件资源,但是文件管理器返回的是文件的Uri,我们需要通过Uri获取文件的url才可以操作文件。昨天的博客虽然写了一种Uri转url的代码,但是我自己也没有很懂,于是在网上查找资料,最终解决了问题。这里记录一下。一.简易版处理(实际并没发现有什么问题)public static Stri
3076 人浏览
android00

一篇文章带你看遍Google I/O 2019大会

为期三天的Google I/O 2019大会终于在上周落下了帷幕,每年的Google I/O大会都可以说是一场全球的开发者盛宴。不过可惜的是,由于和美国存在时差,I/O大会的直播时间正好是我们这边的深夜,因此对于大多数的人来说可能都只能通过回放的方式来观看I/O大会。另外由于会议全程都是使用的英文,因此对于一些英文不太好的朋友观看起来可能也会比较吃力。因此今天我特意写了这样一篇文章来覆盖Googl
3064 人浏览
android00

Android虚线的实现方法

1. 水平虚线的实现:在drawable下新建drawable资源 shape_dotted_line.xml<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line">
3051 人浏览
android

The minCompileSdk (33) specified in a dependency‘s AAR metadata (META-INF/com/android/build/gradle/a

报错:The minCompileSdk (33) specified in adependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties)is greater than this module's compileSdkVersion (android-32).Dependency: an
3028 人浏览
cnbzlj

android removeRule的使用

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

Android 通过腾讯WebService API获取 地址经纬度

不废话,需求:必须调用腾讯地图的API将地址转经纬度,怎么办? 1、申请地图使用Key(必须) 访问腾讯地图服务 : http://lbs.qq.com/qqmap_wx_jssdk/index.html;申请自己的Key; 记得开启webServiceAPI,不要输入任何限制条件。 请求URL 该请求为GET请求 https://apis.map.qq.com/ws/geoc
3022 人浏览
android

android OKHttp的基本使用详解

简单说一下学习okhttp的理由google在Android 6.0中删除了HttpClient的Api,采用的是则是okhttp高效的使用HTTP,使应用运行更快更省流量响应缓存数据避免重复网络请求无缝的支持GZIP来减少数据流量使用非常简单,请求和响应的Api具有流畅的建造和不变性,同时支持同步异步调用回调函数如果网络出现问题,它会从常见的连接问题中恢复如果服务器配置有多个IP地址,当第一个I
2999 人浏览
tinuv

反射学习(二)

对成员的访问访问字段通过反射获取到的字段使用Field类表示,Field类提供了一系列的方法来访问基础数据类型,如getInt(),getBoolean()Fieldfield=testClass.getField("intData"); inta=field.getInt(test);field.setInt(test,5);通过setInt()还可以修改一个对象的值,要注
2991 人浏览
cnbzlj

Android edittext限制字节数

不废话,需求:要求输入框输入字符数小于9,怎么做?不是et.getText().toString().length()<9.而是et.getText().toString().getBytes(Charset.defaultCharset()).length <= 9.根据输入字符串或者显示字符串的字节长度和字符串长度判断,因为汉字在android中一个字符占3个字节,EditText
2980 人浏览
cnbzlj

android 解决password过时

今天,简单讲讲如何解决android:password 过时的问题。这个其实很简单,之前自己讲过很多过时的代码,这个android:password 过时也经常遇到,只是一直没有花时间写成博客。今天正好记录一下。android:password="true"编写Android时,这句代码会报错,“android:password is deprecated: Use inputType inste
2974 人浏览
bbsmax

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

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

android 将ScrollView滚动到底部

android 将ScrollView滚动到底部,主要包括android 将ScrollView滚动到底部使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下方案1:使用 scrollTo 或 smoothScrollTo 滚动到 scrollview 最后一个节点位置public static void scrollToBottom(final View
2968 人浏览