自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (9)
  • 收藏
  • 关注

原创 Java Android中常见的比较

Java篇1,HashMap和HashTable的区别2,HashMap与HashSet的区别3,ArrayList和LinkedList的区别4,StringBuffer和StringBuilder、String的区别5,int和Integer的区别6,重写和覆盖的区别7,成员变量和局部变量的区别以及形参问题8,==和equals和hashCode的区别9,Serializab...

2019-12-19 17:27:53 404

原创 内存泄露

1. 内存泄露原因当一个对象不再被使用,在回收时另一个正在使用的对象持有它的引用导致本该被回收的对象不能被回收而留在堆内存中,就产生了内存泄露。说白了,该对象无法被回收的原因就是被一个生命周期更长的对象引用了。其实内存泄露就是一句话,生命周期较长的对象持有生命周期较短的引用。2. 内存泄露影响1>:Android系统给每个应用程序分配内存有限,如果app超过系统分配给它的内存,造成...

2019-12-18 18:39:27 327

原创 Android知名三方库

Libraries简介Mvp 是 Google 官方出品的 Mvp 架构项目,含有多个不同的架构分支(此为 Dagger 分支).Dagger2 是 Google 根据 Square 的 Dagger1 出品的依赖注入框架,通过 Apt编译时生成代码,性能优于使用运行时反射技术的依赖注入框架.RxJava 提供优雅的响应式 API 解决异步请求以及事件处理.RxAndroid 为 An...

2020-01-21 10:19:46 360

原创 App优化(五)电量优化

引言电量使用优化, 基本上是我们最不怎么关注的一项优化. 可能很多公司连QA/Tester也不会关注测试App电量的使用. 一般来说开发和测试的测试设备也一直是连着USB处于充电状态的, 感官上也体会不到电量的损耗.然而, 对于用户来说, 实际上App的电量损耗也是用户体验的一个方面. 特别是当今人们对移动设备的依赖度越来越高, 电量也是用户特别关注的.今天我们就来聊聊Android App...

2019-12-19 17:03:39 729

原创 App优化(六)网络优化

引言互联网时代, App作为于用户交互的端, 可以说实际上是一个界面, 产品的业务, 服务都是由Server提供的. 而App与Server的交互依赖于网络, 故而网络优化, 也是我们的App优化中不可缺少的一个优化项.1, 网络连接对用户的影响App的网络连接对于用户来说, 影响很多, 且多数情况下都很直观, 直接影响用户对这个App的使用体验. 其中较为重要的几点:流量 App的流量...

2019-12-19 16:44:51 1397

原创 App优化(四)内存优化

引言系列终于走到了内存这里了.内存问题, 一直是Android App开发中比较困扰的问题. 灾难性, 难以复现, 难以定位. 内存管理的知识也相对生涩, 很多工具的使用需要对一些内存相关的专有名词有一定了解, 例如GC Roots, Heap, Stack, Shallow Size, Retained Size, Depth等等.计划整理了之前的笔记, 也查阅了相关资料, 发现这块内容还...

2019-12-19 15:57:51 268

原创 App优化(三)ANR优化

上篇:ANR详解1,你碰到ANR了吗?在App使用过程中, 你可能遇到过这样的情况:恭喜你, 这就是传说中的ANR.1.1 何为ANRANR全名Application Not Responding, 也就是"应用无响应". 当操作在一段时间内系统无法处理时, 系统层面会弹出上图那样的ANR对话框.1.2 为什么会产生ANR在Android里, App的响应能力是由Activity ...

2019-12-19 15:38:33 536

原创 App优化(二)布局优化

1,分析analyze->inspect code2,怎么优化布局2-1:尽量减少布局层级和复杂度2-1-1:尽量不要嵌套使用RelativeLayout。2-1-2:尽量不要在嵌套的LinearLayout中都使用weight属性。2-1-3:Layout的选择, 以尽量减少View树的层级为主。2-1-4:去除不必要的父布局。2-1-5:善用TextView的Drawab...

2019-12-19 14:22:59 276

原创 App优化(一)App启动速度优化

1,代码分析因为这个App集成了Bugly, Push, Feedback等服务, 所以Application的onCreate有很多第三方平台的初始化工作…public class GithubApplication extends MultiDexApplication { @Override public void onCreate() { super....

2019-12-19 14:03:38 520

原创 Android 统计启动时长

1,启动类型1>.冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动。冷启动因为系统会重新创建一个新的进程分配给它,所以会先创建和初始化 Application 类,再创建和初始化 MainActivity 类,最后显示在界面上。2>.热启动:当启动应用时,后台已有该应用的进程(例:按back键、home键,应用虽然会退出...

2019-12-19 10:05:54 1350

原创 SP(SharedPreferences)是进程同步的吗?有什么方法做到同步?

## SP(SharedPreferences)是进程同步的吗?有什么方法做到同步?1,SharedPreferences不支持进程同步一个进程的情况,经常采用SharePreference来做,但是SharePreference不支持多进程,它基于单个文件的,默认是没有考虑同步互斥,而且,APP对SP对象做了缓存,不好互斥同步。MODE_MULTI_PROCESS的作用是什么?在getS...

2019-12-18 17:45:03 1881

原创 万能注释模板

代码的注释是我们平时必须面对的问题,今天我们就来看看如何自定义属于自己的注释模板。提高我们的开发效率。2、打开相应位置File–>Setting–>Editor–>LiveTemplate:2、新建一个Live Group点击右边的+号,选择Template Group,命名自己的一个注释包。我自己命名为author。3、新建一个LIve Temp...

2018-08-01 15:53:15 4184

原创 Fiddler4——手机抓包

一、下载工具包百度搜索”fiddler 下载“ ,安装最新版本下载的软件安装包为“fiddler_4.6.20171.26113_setup.exe”格式,双击安装。安装成功,在“开始”-“所有程序”,就会看见这样的图标,若是常用的话,也可以在桌面建一个快捷方式,如下图:二、fiddler手机抓包原理在本机开启了一个http的代理服务器,然后它会转发所有的http请求和响应...

2018-08-01 15:07:07 743

原创 Android权限

关于Android权限,自6.0系统之后实行动态权限管理,大致分为两大类:普通权限、危险权限。普通权限//public static final String READ_CALENDAR = "android.permission.READ_CALENDAR";public static final String WRITE_CALENDAR = "android.permiss...

2018-07-25 10:00:41 281

原创 Android系统版本号和Android API level对应表

28——Android 9——2018-07-0227——Android 8.1——2017-12-0526——Android 8.0——2017-08-2125——Android 7.1——2016-10-0424——Android 7.0——2016-08-2223——Android 6.0——2015-10-0522——Android 5.1——2015-03-0921——An...

2018-07-25 09:36:57 1284

原创 Git的使用--上传本地项目到Github

前言在项目开发初期,我们一般会先在本地创建一个项目,搭好相对适合公司业务的项目框架,在这之后会上传到相应的项目管理平台进行托管,常用的有svn、git,下面我们就主要来说一下使用命令行将“本地项目上传到git”的具体流程吧。git的安装就不说了;如果需要请百度。1. 我们需要先创建一个本地的版本库(其实也就是一个文件夹)。你可以直接右击新建文件夹,也可以右击打开Git bash命令...

2018-05-02 14:49:47 222

原创 IDEA文件查找功能Enter file name失效

描述:由于强制关机,IDEA文件查找功能(ctrl+shift+N)弹出的Enter file name失效,无法查询出需要的文件。步骤:问题分析分析下原因,很大可能性是由于强制关机后索引丢失,导致搜索功能失效。解决方案:可以点击File,找到Invalidate Caches /Restart按钮,务必保存好当前编辑代码后点击重启...

2018-04-11 10:28:30 3142 1

原创 Android PDF文件阅读方案

方案一:在线阅读(使用Google doc支持来展示word,excel,pdf,txt)WebView urlWebView = (WebView)findViewById(R.id.containWebView);urlWebView.setWebViewClient(new AppWebViewClients());urlWebView.getSettings().setJavaScrip

2018-04-08 18:48:02 1608

原创 Android 第三方支付

前言:作为一个Android开发,必不可少的要接触到支付功能,面对支付,我的观念还是老样子,一次接入多次使用,这就体现出了封装的必要性了,目前国内常见的支付有四个:银联银行、支付宝、微信支付、QQ钱包,下面我就来集成一下支付宝、微信支付、QQ钱包三个平台的支付。微信支付:流程图:开发步骤:后台设置 商户在微信开放平台申请开发应用后,微信开放平台会生成APP的唯一标识APPID。由于需要保证支付安

2018-04-04 17:07:18 2541

原创 友盟-第三方登录分享

前言:关于登录和分享,想必是每一个App的必经之路,那么如何才能做到一次开发,多次利用呢?首先,我来说一下国内流行且常见的4种登录方式和5种分享渠道。4种登录方式:手机号登录(开业务接口)、QQ登录、微信登录、新浪微博登录;5种分享渠道:QQ、QQ空间、微信、微信朋友圈、微博。 针对上面所说,我们原本可以一个一个的去接入SDK,现在友盟平台已经帮我们做好了这些事情,在友盟SDK中已集成了各大平台的

2018-04-03 16:09:23 658

原创 Gradle统一管理版本

为了提高项目开发效率,在实际项目开发过程中往往会引入一些开源框架,还有项目中使用的各种Module,当引入Module过多时最好提供一种统一的方式去管理版本号,如:compileSdkVersion、buildToolsVersion、androidTestCompile 等,便于日后对版本号进行维护,下面介绍一种方式处理上述问题。方式如下:1.1 在根目录下的build.gradle文件下添加 e

2018-03-30 15:31:21 1447

原创 Android网络框架(Retrofit+Okhttp+Rxjava)、MVP模式(Dagger)

大多数应用程序基本都需要连接网络,发送一些数据给服务端,或者从服务端获取一些数据。通常在 android 中进行网络连接一般使用 Scoket 和HTTP,HTTP 请求方式比 Scoket 多得多。HTTP 请求一般采用原生的 HttpClient 和 HttpUrlConnection 的两种网络访问方式。可是在 Android 5.0 的时候 Google 就不推荐使用 HttpClient

2018-03-30 13:35:11 460

原创 Android友盟统计和埋点

一、友盟初始化和通用接口1.SDK集成1.1自动集成通过在工程build.gradle配置脚本中添加maven线上依赖,导入最新版本组件化基础库和统计SDK。 在Gradle依赖中添加:dependencies { compile 'com.umeng.sdk:common:latest.integration' compile 'com.umeng.sdk:ana...

2018-03-29 14:32:21 10153 4

原创 Android编码规范

一、开发环境使用最新AndroidStudio版本开发(暂为2.3.3)sdk版本 minSdkVersion=16; compileSdkVersion = 26 targetSdkVersion =26 buildToolsVersion = 26.0.1二、命名规范遵循驼峰命名规则,名字能准确描述表达的含义。能用简单英文单词表述的,尽量都统一用英文。特殊情况对于传统业务叫法的

2018-03-27 13:56:59 256

原创 App与JS交互

一、js调用app// 调用时传递的参数均为字符串,未方便书写,写成了对象形式,下同。/** * 向app发起请求 * actionName {String} 调用app的方法名 * @param args.__token {String} token为唯一标识,用来区别,同一方法的多次调用。 * @param args 其他的所有字段均为请求时需要的数据 */// js调...

2018-03-27 13:25:52 1115

原创 回顾一下Activity的生命周期和启动模式的关系

/********************单个Activity默认(standard)********************/09-06 15:50:53.425 4735-4735/com.example.dell.test D/tag: MainActivity_onCreate09-06 15:50:53.435 4735-4735/com.example.dell.test D/tag

2018-03-21 12:16:14 166

原创 Android Studio如何创建自己的library,供别人使用?

这个问题是很值得学习,这也是实现模块化的必经之路。下面废话不多说直接开始吧。。。第一步:创建Demo项目以上是我们的项目。第二步:创建Module1,File——>New——>New Module2,选择Android Library——>next3,输入我们自己library的名字,这里我命名为BaseLayerLibrary(公共业务层...

2017-12-18 16:43:42 4351 1

原创 Android Studio快速生成实体类插件——GsonFormat使用

一:什么是GsonFormat?超爽的数据解析方式 。他可以将Json数据快速转换成实体类。二:GsonFormat安装流程File–>Setting–>plugins–>在搜索引擎中搜索GsonFormat,如下: 点击安装即可,我这里是已经安装过的。安装之后重新启动Android Studio。三:GsonFormat的使用创建一个空类取名Book,然后在里面按alt+insert,会弹出一个弹

2017-10-19 19:04:47 4101

原创 Java排序对比

一、冒泡排序代码:public class BubbleSortClass { public static void main(String[] str) { int[] arr = {20, 6, 14, 10, 7, 19, 8, 9, 11, 18, 16, 13, 15, 5, 1, 4, 12, 2, 3, 17}; int temp;

2017-09-08 18:29:43 387 1

原创 Android中常用的Lib库

/*注释工具*/ compile 'com.jakewharton:butterknife:7.0.1' /*事件总线*/ compile 'org.greenrobot:eventbus:3.0.0' /*谷歌图片加载器*/ compile 'com.github.bumptech.glide:glide:3.7.0' /*网络框架*/ co

2017-09-08 17:17:47 1543

原创 Android Hanlder-Message-Looper机制

Android提供了Handler 和 Looper 来满足线程间的通信。Handler先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(MessageExchange)。上一张图:1、Looper:一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列)。 2、Handler:你可以构造Handler对象来与Looper沟通,以便push新消息

2017-09-08 16:25:49 374 1

原创 Java之static关键字

Java开发之static关键字的讲解,废话不多说,直接上代码一、模板类,里面包括:成员变量、静态变量、普通代码块、静态代码块、普通方法、静态方法、构造函数、静态内部类(包括:成员变量、静态变量、普通代码块、静态代码块、普通方法、静态方法、构造函数)。package com.example;public class Test1 { static int a = 10; static i

2017-09-08 14:40:32 272

原创 Android Studio AIDL实现跨进程通信

AIDL:Android Interface Definition Language,即Android接口定义语言

2017-09-07 16:16:40 743

Android 第三方支付

作为一个Android开发,必不可少的要接触到支付功能,面对支付,我的观念还是老样子,一次接入多次使用,这就体现出了封装的必要性了,目前国内常见的支付有四个:银联银行、支付宝、微信支付、QQ钱包,下面我就来集成一下支付宝、微信支付、QQ钱包三个平台的支付。

2018-04-04

友盟-第三方登录分享

关于登录和分享,想必是每一个App的必经之路,那么如何才能做到一次开发,多次利用呢?首先,我来说一下国内流行且常见的4种登录方式和5种分享渠道。4种登录方式:手机号登录(开业务接口)、QQ登录、微信登录、新浪微博登录;5种分享渠道:QQ、QQ空间、微信、微信朋友圈、微博。 针对上面所说,我们原本可以一个一个的去接入SDK,现在友盟平台已经帮我们做好了这些事情,在友盟SDK中已集成了各大平台的SDK,我们可以直接使用,下面我就重点说一下友盟如何集成第三方的登录和分享。

2018-04-03

Gradle统一管理版本

为了提高项目开发效率,在实际项目开发过程中往往会引入一些开源框架,还有项目中使用的各种Module,当引入Module过多时最好提供一种统一的方式去管理版本号,如:compileSdkVersion、buildToolsVersion、androidTestCompile 等,便于日后对版本号进行维护,下面介绍一种方式处理上述问题。

2018-03-30

Android网络框架(Retrofit+Okhttp+Rxjava)、MVP模式(Dagger)

大多数应用程序基本都需要连接网络,发送一些数据给服务端,或者从服务端获取一些数据。通常在 android 中进行网络连接一般使用 Scoket 和HTTP,HTTP 请求方式比 Scoket 多得多。HTTP 请求一般采用原生的 HttpClient 和 HttpUrlConnection 的两种网络访问方式。可是在 Android 5.0 的时候 Google 就不推荐使用 HttpClient 了,到了 Android 6.0 (api 23) SDK,不再提供 org.apache.http.* (只保留几个类), 因此,设置 android SDK 的编译版本为23时,且使用了 httpClient 相关类的库项目:如 android-async-http 等等,会出现有一些类找不到的错误。下面我将使Retrofit+Okhttp+Rxjava的方式为大家简述一下网络框架的搭建。

2018-03-30

Android友盟统计和埋点

友盟初始化和通用接口 1.SDK集成 1.1自动集成 通过在工程build.gradle配置脚本中添加maven线上依赖,导入最新版本组件化基础库和统计SDK。 在Gradle依赖中添加:

2018-03-29

app与js交互

js调用app // 调用时传递的参数均为字符串,未方便书写,写成了对象形式,下同。

2018-03-27

Android Studio AIDL实现跨进程通信

AIDL:Android Interface Definition Language,即Android接口定义语言. android studio中使用aidl实现跨进程通讯,具体步骤如下

2018-03-27

Java之static关键字

Java开发之static关键字的讲解,废话不多说,直接上代码 一、模板类,里面包括:成员变量、静态变量、普通代码块、静态代码块、普通方法、静态方法、构造函数、静态内部类(包括:成员变量、静态变量、普通代码块、静态代码块、普通方法、静态方法、构造函数)。

2018-03-27

Android Studio如何创建自己的library,供别人使用?

简单介绍了如何创建属于自己的library,给别人使用。以便以后公用资源。

2017-12-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除