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

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

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

android 配置ADB环境

今天,简单讲讲如何配置Android的adb命令环境。 之前,自己要使用Dos窗口的ADB命令,发现无法识别。很明显是ADB环境没有配置好。我这里Android studio的huan环境已经配置好了,于是在网上查找资料,很简单就解决了。 第一步,打开环境变量配置窗口。右击计算机,属性-高级系统设置-环境变量。 第二步,添加android系统环
2062 人浏览
cnbzlj

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

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

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

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

Activity学习笔记

笔记Activity有四种基本状态Active/Running:一个新的Activity启动后,在屏幕的最前端,在栈顶,处于可见且可与用户交互的状态Paused:失去焦点,如被一个Dialog覆盖后,此时仍然与窗口管理器保持连接,系统继续维护其内部状态,仍然可见Stopped:被另一个activity覆盖,失去焦点并不可见时Killed:当Activity被系统杀死回收或者没有被启动时,处于Kil
2038 人浏览
android01

Android源码解析之(二)-- Android异步消息机制

知乎上看了一篇非常不错的博文:有没有必要阅读ANDROID源码痛定思过,为了更好的深入android体系,决定学习android framework层源码,就从最简单的android异步消息机制开始吧。(一)Handler的常规使用方式publicclassMainActivityextendsAppCompatActivity{ publicstaticfinalStringTAG=Mai
2030 人浏览
kotlin

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

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

Kotlin学习

定义包,引入包packageme.tinuv importjava.util.*这个与Java是相似的.定义变量与Java不同,kotlin的类型都是写在后面的.vala:Int=10100100 valb=10也可以省略,kotlin会自动推断,但我不知道是不是所有类型都可以自动推断.自动推断必须要有初始值valc:Int c=100注意:定义只读局部变量使⽤关键字 val 定义.只能
2009 人浏览
cnbzlj

Android Glide加载图片成圆形

今天,简单讲解android使用glide加载图片成圆形。这个很简单,因为之前需要在RecyclerView里加载圆形图片,所以在网上查找了资料,很简单就解决了。1、导入依赖 implementation 'com.github.bumptech.glide:glide:4.6.1' 2、用Glide加载圆形图片Glide.with(context).load(list.get(position
1983 人浏览
android01

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

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

StreamAPI中常用的方法

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

Kotlin编码风格

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

Android根据图片Uri获取图片path绝对路径

在Android 编程中经常会用到Uri转化为文件路径,如我们从相册选择图片上传至服务器,一般上传前需要对图片进行压缩,这时候就要用到图片的绝对路径。下面对我开发中uri转path路径遇到的问题进行总结,其中涉及到Android不同api下对于uri的处理,还有对于Google相册图片该如何获取其图片路径。1. 从相册获取图片我们从相册获取的图片的代码如下:// 激活系统图库,选择一张图片 In
1965 人浏览
tinuv

Java正则表达式简单学习

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

71道经典Android面试题和答案,重要知识点都包含了

71道经典Android面试题和答案,重要知识点都包含了,请那些准备面试的,好好看哦,加薪2000元不是问题,,面试题1. 下列哪些语句关于内存回收的说明是正确的? (b ) A、 程序员必须创建一个线程来释放内存 B、内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象 2. 下面异常是属于Runtime Exception 的是
1957 人浏览
cnbzlj

Okhttp3基本使用

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

android 设置点击ProgressDialog外的区域不消失

今天,简单讲讲android如何设置点击ProgressDialog外的区域不消失。昨天,自己做一个加载框ProgressDialog时,完成功能后,发现ProgressDialog点击区域外面就立即消失了,于是我想设置ProgressDialog点击区域外时不消失,点击手机返回键时才自动消失。可是发现自己居然不知道怎么做,于是在网上查找资料,最终解决了问题。这里记录一下。安卓在4.0之前对话框都
1947 人浏览
android01

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

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