Android路漫漫
文章平均质量分 57
小王不是胖虎
多读书多看报,少吃零食多睡觉
展开
-
Android文件解压【已测通】
废话不多说,直接上代码:/** * 文件解压 * @param zipFileString 压缩文件路径 * @param folderPath 解压输出路径 * @throws IOException */ public static void UnZipFolder(String zipFileString, String folderPath) throws IOException { ZipFile zfile = new原创 2021-08-23 19:07:38 · 273 阅读 · 0 评论 -
安卓动态权限申请-手写一个权限请求模板
在安卓开发中,有些权限我们可以写在Manifest.xml文件中去申请权限,另外有一些权限在安卓6.0之后需要我们在用到这些权限的时候动态的向用户去申请。具体的分类看这里 :Android权限申请哪些需要动态申请我们现在看一下怎么在代码中动态的进行权限申请。 if(ContextCompat.checkSelfPermission(this, Manifest.permissio...原创 2020-02-22 13:26:03 · 657 阅读 · 0 评论 -
安卓【.9图】制作方法教程及技巧
.9图.9图就是能够部分拉伸的图,例如:制作方法:在drawable文件中右击一个图片,点击create 9-patch file ,原创 2019-09-02 11:29:45 · 8008 阅读 · 0 评论 -
【小王的安卓之路】自定义控件开发(一)
自定义控件开发(基础篇)当我们频繁使用某些控件的组合,并且要求这个控件能够响应事件时,我们就可以创建自定义控件。本文以登录时的输入框为例:一.创建过程:1.1在res/values目录下新建 values resource file,用来定义控件的属性代码如下:<?xml version="1.0" encoding="utf-8"?><resources>...原创 2019-08-07 17:13:17 · 114 阅读 · 0 评论 -
【小王的安卓之路】自定义控件开发(二)之“淡黄的长裙,蓬松的头发,你想要的样子我都有”
自定义控件开发当一些组成比较复杂的控件被要求能够响应事件,并需频繁使用时,不妨将它创建成一个自定义控件。这里以一个登陆界面的文本框为例。一.创建过程1.1 创建控件属性xml文件在res/values文件夹下新建values resource file内容如下:<?xml version="1.0" encoding="utf-8"?><resources>......原创 2020-04-01 13:48:23 · 230 阅读 · 0 评论 -
【小王的安卓之路】Android安卓入门之常用控件及其使用方法(1/2)
常用控件及其使用方法1.控件是什么?2.常用的控件有哪些?3.控件的的作用4.控件的基本属性5.控件的使用方法6.总结1.控件是什么?说到安卓的控件,Android提供了大量的UI控件在供开发者使用。合理的使用这些控件可以帮助开发者轻松编写出一个美观的功能完善的界面...原创 2019-06-05 20:14:22 · 289 阅读 · 0 评论 -
【小王的安卓之路】Android安卓入门之Intent(意图)及其功能解析
Intent-意图1.Intent是什么?2.Intent是干什么用的?3.Intent使用方法4.Intent过滤器一.Intent是什么?官方文档是这样说的:An intent is an abstract description of an operation to be performed. It can be used with startActivity to la...原创 2019-05-29 15:00:51 · 286 阅读 · 0 评论 -
【小王的安卓之路】Android安卓入门之Activity(活动)及其生命周期
- 1.Activity是什么? - 2.Activity的七大生命周期 - 3.Activity的生老病死 - 4.多个Activity交互时生命周期的变化 - 5.Activity的主要作用原创 2019-05-17 15:42:03 · 25229 阅读 · 0 评论 -
安卓Fragment相关知识点详解(面试必问!!!)
Fragment面试详解一.添加fragment到Activity的两种方法….1.静态添加Fragment到Avtivity:1.1编写xml布局文件2.编写java类继承Fragment类3.在刚才编写的java类中重写onCreateView方法,然后利用 View view = inflater.inflate(R.layout.xxx,null);获取到view对象,...原创 2020-03-14 21:02:51 · 195 阅读 · 0 评论 -
安卓中的Socket通信和Https通信中证书的校验方法
Socket通信socket是一个常见的网络协议。这篇文章我们用一个简单的聊天室的例子,来实践一下TCP和UDP在socket中的应用。案例一:UDP聊天室这个案例中,有两个主要的类DatagramSocket:代表UDP协议的Socket,DatagramSocket本身只是码头,不维护状态,不能产生IO流,它的唯一作用就是接收和发送数据报。DatagramPacket:代表数据报文...原创 2020-04-07 16:38:22 · 833 阅读 · 0 评论 -
安卓View绘制的相关知识点
View绘制相关知识点...一.view树的绘制流程大体上分为:measure------>layout------>draw这三个步骤二.measure方法:参数1.ViewGroup.layoutParams:这个参数表示了子视图的大小,一般有三种类型:match_parent:表示是子视图想和父控件一样大(不包括padding值)warp_content:整个...原创 2020-03-16 15:40:23 · 196 阅读 · 0 评论 -
图解Service的两种启动方式
图解Service的两种启动方式众所周知,Service有两种启动方式...一.在新进程启动Service在新进程启动Service共分为5个步骤:step1:App向AMS发送一个启动Service的消息,从AIDL视角看是这个样子的:图中client代表了App端,APP通过AMN/AMP将要启动的service信息发送给了AMS。Step2:AMS检查Service...原创 2020-03-06 11:51:46 · 1192 阅读 · 0 评论 -
WebView相关方法解析
WebView相关操作...1.加载网页的四种方式2.控制网页的前进和后退3.Webview状态管理4.webview相关常用类简介5.控制JS运行6.控制网页的大小和缩放7.缓存策略8.WebViewClient9.资源请求回调10.地址拦截11.WebViewClient发生错误时的处理12.WebChromeClient处理网页信息13.android调用JS...原创 2020-02-22 20:27:06 · 343 阅读 · 0 评论 -
安卓ORM框架GreenDao的基本使用方法
安卓ORM框架GreenDao的基本使用方法1.项目引入2.建立数据库1.项目引入在build.gradle(Project)的dependencies里加入classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin在build.gradle(APP)上方加入apply plugin: 'org.gre...原创 2020-02-06 20:16:20 · 319 阅读 · 0 评论 -
图片加载框架Glide使用解析及其高级用法
图片加载框架Glide的使用解析及其高级用法1.Glide项目简介2.普通图片加载方法与Glide图片加载对比3.Glide的高级使用方法(一)4.Glide的高级使用方法(二)..1.Glide项目简介Glide在安卓中不算是一个新的技术,但却是使用的比较火热的图片加载框架。在GitHuB上有28.2K颗星也体现了广大开发者对Glide的喜爱.2.普通图片加载方法与Glide...原创 2020-02-05 20:52:29 · 940 阅读 · 0 评论 -
RecyclerView使用解析
0.RecyclerView的特性1.LayoutManager类2.Adapter类3.ViewHolder类4.配置不同的LayoutManager5.为item配置点击事件6.RecyclerView中插入和删除数据...0.RecyclerView的特性:灵活可以配置可以自定义并且可以重复使用的Item高度解耦..1.LayoutManager类:La...原创 2020-02-04 21:34:50 · 2068 阅读 · 0 评论 -
EventBus的小tips
1. EventBus的线程模式2.黏性事件3. 配置混淆规则....0.EventBus的简介一个Android事件发布/订阅轻量级框架,功能:通过解耦发布者和订阅者简化Android事件传递 [2] EventBus可以代替Android传统的Intent,Handler,Broadcast或接口函数,在Fragment,Activity,Service线程之间传递数据,执...原创 2020-02-03 17:34:10 · 206 阅读 · 0 评论 -
Dagger2使用方法及源码解析(二)
接上篇文章4.Dagger2使用方法拓展:_4.1Dagger2实现单例模式:在java中,实现单例模式的方法有很多,如:利用 synchronized锁实现橘子类的单例public class Orange{ private static Orange instance; private Orange() { } public static Or...原创 2019-12-20 10:48:07 · 171 阅读 · 0 评论 -
【已解决】ERROR: Unable to resolve dependency for ':app@debug/compileClasspath'..或者Cause: unable to find
当我们给项目添加新的依赖时,有时会提示我们:ERROR: Unable to resolve dependency for ‘:app@debug/compileClasspath’: Could not resolve …或者:Cause: unable to find valid certification path to requested target我们的代码并没有错。只是Gra...原创 2019-12-11 10:41:53 · 2420 阅读 · 1 评论 -
安卓国际化【多语言以及不同语言下的图片适配】
前言:在一些场合中,比如即将到来的冬奥会,我们做的APP就可能需要面对别的国家的用户,这个时候如果你的APP只支持中文那就太尴尬了。废话不多说:一.多语言适配1.安卓7.0之前: 1.1.第一步: private void chooseLanguage(Locale locale) { Resources resources = getResources(); ...原创 2019-12-11 10:19:14 · 1714 阅读 · 0 评论 -
Dagger2使用方法及源码解析(一)
Dagger2使用方法及源码解析1.Dagger2简介2.Dagger2项目依赖3.Dagger2基础使用方法4.Dagger2基础源码分析...1.Dagger2简介 :Dagger是一种对Java和Android的静态的,编译时依赖注入(Dependency Injection)框架。它主要用来解决很多由于大量使用反射reflection而带来的开发和性能问题。总而言之,Da...原创 2019-12-11 09:40:38 · 297 阅读 · 0 评论 -
JAVA接口回调的两篇文章
我本来也是一知半解,看了这两片文章明白了很多。码在这,以后想不起来了可以看看:文章一:接口回调本质就这么简单文章二:Java接口回调一般用法两片文章讲的很好,都看完应该就明白了,配合代码食用效果更佳!...原创 2019-11-06 11:03:26 · 233 阅读 · 0 评论 -
【小王的安卓之路】Handler防治内存泄漏的优化使用方法
handler优化一.为什么要进行优化二.怎么优化。一.为什么进行优化:在使用handler时,有时候我们会传递参数,这些参数可能是对某个已经销毁的Activity的引用。从而导致系统不能GC掉这个Activity导致资源浪费。二.怎么优化:1.将handler设置为静态2.传递参数时传递弱引用而不是强引用案例:倒计时程序布局文件:<?xml version="1.0...原创 2019-08-04 14:02:47 · 457 阅读 · 0 评论 -
【小王的安卓之路】Android原生网络请求
Android原生网络请求一. 网络请求的必要性二. 网络请求分类三 网络请求实现方法一.网络请求的必要性:如今单机APP早已经接近消失就连最简单的时钟日期等软件都需要去请求网络来完成同步。我们在制作一个APP时连接网络几乎成了一个必要的条件。二.网络请求分类:网络请求主要分为两类:GET请求: 将请求及其参数追加到url后面来实现请求,主要用来请求数据**POST请求:**只发...原创 2019-08-01 12:25:01 · 1175 阅读 · 0 评论 -
【小王的安卓之路】Android解析JSON数据
Android解析JSON数据一.什么是JSON二.怎么解析JSON一.什么是JSON:1.1JSON的定义:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想...原创 2019-08-02 12:07:13 · 177 阅读 · 0 评论 -
【已解决】Android提示:Cannot resolve symbol 'NonNull‘ 或者 Cannot resolve symbol 'Nullable’
原文链接stack overflow:解决方法:第一步:在build.gradle的项目依赖文件中加入依赖:implementation 'androidx.annotation:annotation:1.1.0'第二步:sync翻译 2019-08-06 22:44:07 · 9499 阅读 · 0 评论 -
【小王的安卓之路】ListView的优化使用以及RecycleBin的原理
ListView的优化使用一.ListView样式我们平时看到的评论类的消息类的一条一条的数据,一般来说都是ListView的样式(虽然可能大部分都是RecycleView),但他们实现的样式基本类似。本文以实现获取所有系统应用的名称和图标为例。二.ListView的优化使用方法(普通方法就不写了)2.1在布局文件中:直接写入一个ListView,定义它的id.<?xml ve...原创 2019-08-09 10:30:26 · 163 阅读 · 0 评论 -
【已解决】安卓9.0中网络访问出现异常
一.原因在安卓9.0及以上版本中,默认不支持http请求,所以需要手动配置。二.配置方法:1.在res目录下新建一个叫做xml的目录,然后新建一个叫做network_security_config的xml文件,内容为:<?xml version="1.0" encoding="UTF-8"?>-<network-security-config><...原创 2019-10-08 09:59:18 · 745 阅读 · 0 评论 -
【小王的安卓之路】下载网络资源并存储到本地
下载网络资源并存储到本地一.知识要求二.功能设计三.代码实现四.注意事项一.知识要求:handler基础,网络请求基础,文件操作基础二.功能设计:我们要设计一个能下载特定网络文件的小程序,并且能将加载进度实时显示在屏幕上。功能:网络请求->下载文件->实时显示->本地文件存储三.代码实现:3.1布局文件:直接拖拽的,比较简陋的一个布局。<andr...原创 2019-08-04 11:02:21 · 228 阅读 · 0 评论