-
bbsmax
-
引导语本文从一个递归栈溢出说起,像大家介绍一下如何使用尾调用解决这个问题,以及尾调用的原理,最后还提供一个解决方案的工具类,大家可以在工作中放心用起来。递归-发现栈溢出现在我们有个需求,需要计算任意值阶乘的结果,阶乘我们用 n!表示,它的计算公式是:n! = 123……(n-1)n,比如说 3 的阶乘就是 123。对于这个问题,我们首先想到的应该就是递归,我们立马写了一个简单的递归代码://阶乘计
-
android00
-
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">
-
cnbzlj
-
不废话,需求:必须调用腾讯地图的API将地址转经纬度,怎么办?
1、申请地图使用Key(必须)
访问腾讯地图服务 : http://lbs.qq.com/qqmap_wx_jssdk/index.html;申请自己的Key;
记得开启webServiceAPI,不要输入任何限制条件。
请求URL
该请求为GET请求
https://apis.map.qq.com/ws/geoc
-
android
-
今天,简单讲讲如何配置Android的adb命令环境。
之前,自己要使用Dos窗口的ADB命令,发现无法识别。很明显是ADB环境没有配置好。我这里Android studio的huan环境已经配置好了,于是在网上查找资料,很简单就解决了。
第一步,打开环境变量配置窗口。右击计算机,属性-高级系统设置-环境变量。
第二步,添加android系统环
-
cnbzlj
-
今天,简单讲讲android里如何使用浏览器打开指定的网页。之前,我做一个功能时,服务器返回一个url地址,我需要跳转到指定网页。却发现自己不知道怎么做,在网上搜索了资料,最终是解决了问题。这里记录一下。启动android默认浏览器在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器。如果手机本身安装了多个浏览器而又没有设置默认浏览器的话,系统将让用户选择使用哪个浏览器来打
-
android01
-
平时开发过程中我们通过android studio编写完成android项目之后直接点击 Run 'app'就可以在build/outputs/apk生成可以在android设备中安装的apk文件了,那么整个android源码的构建过程是怎么样的呢?我们可以根据Google官方提供的流程图来具体了解构建的过程:通常的构建过程就是如上图所示,下面是具体描述:1.AAPT(Androi
-
tinuv
-
笔记Activity有四种基本状态Active/Running:一个新的Activity启动后,在屏幕的最前端,在栈顶,处于可见且可与用户交互的状态Paused:失去焦点,如被一个Dialog覆盖后,此时仍然与窗口管理器保持连接,系统继续维护其内部状态,仍然可见Stopped:被另一个activity覆盖,失去焦点并不可见时Killed:当Activity被系统杀死回收或者没有被启动时,处于Kil
-
android01
-
知乎上看了一篇非常不错的博文:有没有必要阅读ANDROID源码痛定思过,为了更好的深入android体系,决定学习android framework层源码,就从最简单的android异步消息机制开始吧。(一)Handler的常规使用方式publicclassMainActivityextendsAppCompatActivity{
publicstaticfinalStringTAG=Mai
-
kotlin
-
因此本篇文章同时还会涵盖Kotlin继承与面向对象方面的知识。类与对象首先Kotlin中定义一个类很简单,如下所示:classPerson{
}这是一个空的类实现,可以看到,Kotlin中也是使用class关键字来声明一个类的,这点和Java一致。现在我们可以在这个类中加入字段和函数来丰富它的功能,这里我准备加入name和age字段,以及一个eat函数,因为任何一个人都有名字和年龄,也都需要吃饭
-
tinuv
-
定义包,引入包packageme.tinuv
importjava.util.*这个与Java是相似的.定义变量与Java不同,kotlin的类型都是写在后面的.vala:Int=10100100
valb=10也可以省略,kotlin会自动推断,但我不知道是不是所有类型都可以自动推断.自动推断必须要有初始值valc:Int
c=100注意:定义只读局部变量使⽤关键字 val 定义.只能
-
cnbzlj
-
今天,简单讲解android使用glide加载图片成圆形。这个很简单,因为之前需要在RecyclerView里加载圆形图片,所以在网上查找了资料,很简单就解决了。1、导入依赖 implementation 'com.github.bumptech.glide:glide:4.6.1' 2、用Glide加载圆形图片Glide.with(context).load(list.get(position
-
android01
-
什么是IntentService?简单来说IntentService就是一个含有自身消息循环的Service,首先它是一个service,所以service相关具有的特性他都有,同时他还有一些自身的属性,其内部封装了一个消息队列和一个HandlerThread,在其具体的抽象方法:onHandleIntent方法是运行在其消息队列线程中,废话不多说,我们来看其简单的使用方法:定义一个IntentS
-
tinuv
-
StreamAPI中常用的方法filter()lambda函数传入一个参数,返回符合条件的publicstaticvoidmain(String[]args){
List<String>strings=newArrayList<String>(){
{
add("test1");
add("test2");
add(&quo
-
kotlin
-
此页面包含当前 Kotlin 语言的编码风格一、命名风格如果拿不准的时候,默认使用Java的编码规范,比如:使用驼峰法命名(并避免命名含有下划线)类型名以大写字母开头方法和属性以小写字母开头使用 4 个空格缩进公有函数应撰写函数文档,这样这些文档才会出现在 Kotlin Doc 中二、冒号类型和超类 之间的冒号前要有一个空格,而实例和类型之间的冒号前不要有空格:interface Foo<o
-
cnbzlj
-
在Android 编程中经常会用到Uri转化为文件路径,如我们从相册选择图片上传至服务器,一般上传前需要对图片进行压缩,这时候就要用到图片的绝对路径。下面对我开发中uri转path路径遇到的问题进行总结,其中涉及到Android不同api下对于uri的处理,还有对于Google相册图片该如何获取其图片路径。1. 从相册获取图片我们从相册获取的图片的代码如下:// 激活系统图库,选择一张图片
In
-
tinuv
-
与正则表达式相关的类Pattern类Pattern 模式,代表匹配的模式,Pattern没有公共的构造方法,只有一个私有的构造方法privatePattern(Stringp,intf)通常使用静态方法compile()来生成一个Pattern对象publicstaticPatterncompile(Stringregex)compile()方法的参数就是一个正则表达式,正则表达式待会再说.Mat
-
cheng
-
71道经典Android面试题和答案,重要知识点都包含了,请那些准备面试的,好好看哦,加薪2000元不是问题,,面试题1. 下列哪些语句关于内存回收的说明是正确的? (b ) A、 程序员必须创建一个线程来释放内存 B、内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象 2. 下面异常是属于Runtime Exception 的是
-
cnbzlj
-
I.简介HTTP是现代应用常用的一种交换数据和媒体的网络方式,高效地使用HTTP能让资源加载更快,节省带宽。OkHttp是一个高效的HTTP客户端,它有以下默认特性:支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接连接池减少请求延时透明的GZIP压缩减少响应数据的大小缓存响应内容,避免一些完全重复的请求当网络出现问题的时候OkHttp依然坚守自己的职责,它会自动恢复一般的连
-
cnbzlj
-
今天,简单讲讲android如何设置点击ProgressDialog外的区域不消失。昨天,自己做一个加载框ProgressDialog时,完成功能后,发现ProgressDialog点击区域外面就立即消失了,于是我想设置ProgressDialog点击区域外时不消失,点击手机返回键时才自动消失。可是发现自己居然不知道怎么做,于是在网上查找资料,最终解决了问题。这里记录一下。安卓在4.0之前对话框都
-
android01
-
android开发过程中经常会用到缓存,现在主流的app中图片等资源的缓存策略一般是分两级,一个是内存级别的缓存,一个是磁盘级别的缓存。作为android系统的维护者google也开源了其缓存方案,LruCache和DiskLruCache。从android3.1开始LruCache已经作为android源码的一部分维护在android系统中,为了兼容以前的版本android的support-v4