10 Alexlee1986

尚未进行身份认证

暂无相关简介

等级
TA的排名 10w+

Android 性能优化之RecycleView的性能优化原则

Android性能优化之RecycleView的性能优化一、概述RecyclerView有着极高的灵活性,能实现ListView、GridView的所有功能,也能轻松实现ListView、GridView不易实现的功能,如多Type布局列表。在日常开发中,RecyclerView使用非常广泛,如果使用不当将会出现闪烁、卡顿、占用内存过高等问题,影响应用性能,也会影响用户体验,所以有必要...

2019-10-29 16:03:03

Java 单例模式实现方式及其优缺点——单例模式还可以这样实现

单例模式三种初始化方法及其优缺点一、常见单例模式实现方式  单例模式:顾名思义即确保一个类只有一个实例,而且自行实例化(私有构造方法)并向整个系统提供这个实例。  常见的单例模式有三种模式:懒汉式单例、饿汉式单例、静态内部类单例(也叫登记式单例、holder单例)。1.饿汉式单例  实现方式:publicclassSingleton{privatestaticfin...

2019-09-19 21:04:52

Android基础知识之SharedPreferences常见知识点总结

1.SharedPreferences简介  Sharedpreferences是Android平台上一个轻量级的存储类,可以用于保存应用程序的各种配置信息,如应用设置里面的各种开关、是否打开音效、是否使用震动效果、小游戏的玩家积分等,其本质是以“键-值”对的方式保存数据到本地的xml文件中,其文件保存在/data/data//shared_prefs目录下。  核心原理:以“键-值”...

2019-09-04 09:31:14

Android性能优化之APP性能优化原则总结

  使用过Android系统手机的同学都知道,Android手机越用越卡,这个卡主要体现在手机系统越用越卡,打开APP的速度越来越慢。Android手机越用越卡的原因主要有:1、Android系统源码是开放的,像国内的几大手机厂商,都是对系统进入定制开发,这样就会引发一系列问题,比如说著名的系统碎片化问题;2、APP开发人员要对各个系统做各种适配,开发人员的水平参次不齐,开发出来的APP就会出现这...

2019-08-07 17:12:22

Android工具学习之gradlew最全指令攻略

  Gradle是一个构建工具,它是用来帮助我们构建app的,构建包括编译、打包等过程。我们可以为Gradle指定构建规则,然后它就会根据我们的“命令”自动为我们构建app。AndroidStudio中默认就使用Gradle来完成应用的构建,除此之外我们可以用gradle的指令选择性的去构建我们所需要的app。用gradle的指令构建app,需要用到gradlew(即gradlewrapper...

2019-08-01 11:32:57

Android H5页面中iframe页面请求时无法携带cookie的问题解决方法

一、问题描述  最近修复一个日常开发很少遇到也很少会关注的问题,具体问题是在项目中接入了公司前端同事开发的H5页面,这个H5页面内部接入了第三方的页面(后面通过分析是以iframe方式嵌入H5页面的),从公司内部H5页面跳转到第三方页面时有些机型cookie获取不到。具体现象如下图:  问题分析:当H5页面中使用iframe内嵌一个页面时,由于内嵌页面和外部页面域名不同,导致cookie存在...

2019-07-30 17:32:08

Android APK签名、配置及遇到的问题分析

1.APK签名的原因  为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的PackageName来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。2.APK签名好处  应用程序升级:如果你希望用户无缝升级到新的版本,那么你必须用同一个证书进行签名。这是由于只有以同一个证书签名,系...

2019-07-20 16:50:26

Android开发之获取网络IP地址方法总结

  在进行Android应用开发过程中,有时候会遇到获取当前Android设备所使用的网络IP地址的场景,有时候需要本地的网络IP地址,即局域网地址,更多的时候是需要当前网络的真实的对外IP地址,即真实的网络地址,如大数据分析时往往需要Android设备上传本地的外网地址。本文对各种IP地址的获取进行了总结。  首先用大家比较熟悉的电脑端局域网地址和外网地址的获取方式对比一下:(1)、电脑端局域...

2019-07-16 12:03:55

Android开发之获取Mac地址的兼容方法

  随着Android的版本迭代,获取设备信息的方法也可能发生改变,在android6生效的方法,在android8可能已经不生效了。诸如此类,获取Mac地址的方法也发生了变化。这里找到了最新的适配方案(适配当前的最新版本Android9.0),并且记录了整个适配的修复过程,以供参考。一、Android6.0之前,获得Mac地址的通用方式1、必须的权限<uses-permi...

2019-07-03 17:52:06

Android深入研究之View的可见性检测

一、背景  在Android开发中,我们常常会对View的可见性visiblity进行操作或者检查。常见的场景有:在消息流中,根据ImageView是否在屏幕中出现了再决定是否加载;在视频流页面,当视频滑入屏幕被用户可见时播放,滑出屏幕就自动停止播放等等;网络请求数据,根据返回的数据结果控制相应View可见或不可见;需要根据view是否可见或第一次可见,做特殊的处理,如埋点上报等操作。...

2019-06-14 10:11:48

Android进阶学习之 EventBus 3.X.X使用总结

EventBus简介  EventBus是Android发布/订阅事件总线,可简化Activities,Fragments,Threads,Services等组件间的消息传递。  优势:可替代Intent,Handler,BroadCast,接口等传统方案,更快,代码更小,50K左右的jar包,代码更优雅,彻底解耦。github地址:https://github...

2019-04-12 15:53:27

Android基础开发之启动其他应用的方式总结

Android开发经常会遇到在一个应用中启动另一个应用的情况,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用、一个应用为其他应用导量等。在Android中一个应用启动其他应用主要由以下三种启动方式:方式一:通过包名和页面名称,直接打开应用的指定页面Intentintent=newIntent(Intent.ACTION_MAIN);intent.a...

2019-04-01 19:33:49

Android Sdcard文件操作之读、写、增、删(Kotlin实现)

AndroidSdcard文件操作之读、写、增、删(Kotlin实现)  在AndroidManifest.xml中加入访问SDCard的权限如下:<!--在SDCard中创建与删除文件权限--><uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><!...

2019-01-11 18:09:09

Kotlin开发利器之协程

Kotlin开发利器之协程协程的定义  协程的开发人员RomanElizarov是这样描述协程的:协程就像非常轻量级的线程。线程是由系统调度的,线程切换或线程阻塞的开销都比较大。而协程依赖于线程,但是协程挂起时不需要阻塞线程,几乎是无代价的,协程是由开发者控制的。所以协程也像用户态的线程,非常轻量级,一个线程中可以创建任意个协程。项目中引入Kotlin的协程  添加依赖:corout...

2018-12-30 10:26:46

Android N及以上版本应用安装包下载完成自动弹出安装界面的适配方法

应用安装包下载完弹出安装界面适配AndroidN及以上版本遇到文件及解决方法  在实现下载和安装APP功能的时候在Android较高版本可能会遇到如下的问题:安装Apk时报错:android.os.FileUriExposedException:file:///storage/emulated/0/Download/*.apkexposedbeyondappthroughInt...

2018-12-07 16:50:30

Android深入学习之各种隐私权限判断和获取方法总结

Android深入学习之各种隐私权限判断和获取方法总结  从AndroidSDK23开始,Android就改变了权限的管理模式。对于一些涉及用户隐私的权限则需要用户的授权才可以使用。在此之前,开发者只需要在AndroidManifest.xml中注册,如网络权限、wifi权限等等:权限即可,但是现在除了注册还需要进行手动的授权。  没有涉及用户隐私的权限申请的方式比较简单,即只需要在A...

2018-10-14 16:58:51

Kotlin开发Android项目之静态方法、静态变量使用示例

Kotlin开发Android项目之静态方法、静态变量使用示例1.Kotlin定义一个都是静态方法的类  Kotlin定义一个都是静态方法的类,比如项目中比较常见的工具类,只需要将类class换为object即可,下面是Java写法和Kotlin写法的对比:Java写法:publicclassStaticClass{publicstaticintsum(intnum...

2018-10-07 11:25:16

Android深入学习之requestLayout、invalidate和postInvalidate的区别

     Android开发离不开界面的重绘和更新,尤其是自定义控件更是经常遇到重绘更新界面的场景,下面具体介绍一下重绘界面几个方法的区别:    (1)、requestLayout:当view确定自身已经不再适合现有的区域时,该view本身调用requestLayout这个方法要求parentview重新调用它的onMeasure、onLayout来重新计算view大小以及...

2018-09-17 15:32:01

Android 多线程编程之 HandlerThread 详解

  HandlerThread有那些特点:HandlerThread本质上是一个线程类,它继承了Thread; HandlerThread有自己的内部Looper对象,可以进行looper循环; 通过获取HandlerThread的looper对象传递给Handler对象,可以在handleMessage方法中执行异步任务; 创建HandlerThread后必须先调用HandlerT...

2018-08-09 09:51:11

Java基础学习之接口和抽象类的概念、区别及适用的场景

1.接口  接口是抽象方法的集合,一个接口只有方法的形状而没有方法的具体实现,接口是Java面向对象提供的一种机制。  Java语言是一种单继承的,在类的继承中通过实现多个接口间接实现了多继承功能。接口的声明:[public]interfaceInterfaceName{voidmethod1(intarg1);voidmethod2();......

2018-07-29 09:25:15

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。