![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
请叫我东子
一个拥有7年开发经验的java老兵。主要关注的技术方向为分布式技术、微服务、大数据、IOT、云原生、分布式事务、数据中台、领域驱动设计等相关技术。
展开
-
Android 打开网络上pdf文件
之前写过一篇Android打开本地pdf文件的文章,最后总结的时候说,后面一定要拓展库,让其也能打开网络的的pdf文件。今天终于可以兑现承诺了。frok一份代码https://github.com/JoanZapata/android-pdfview,开始改造一番。1.基本思路:打来网络pdf 思路整体还是来源与图片的加载。android中加载网络图片的框架有很多个。如image-laoder,原创 2016-12-29 14:01:37 · 8927 阅读 · 14 评论 -
EventBus3.0的使用
EventBus是Android的发布/订阅事件总线优化。主要功能是替代在Android四大组件Activity,Service,Intent,Handler,BroadCast线程之间传递消息,优点是开销小,代码更优雅。以及将发送者和接收者解耦。1.EventBus3.0的特点:(1)简化了组件之间的通信(2)将事件发送方和接收方执行与Activities, Fragments和后台线程,避免了复原创 2016-03-22 08:26:57 · 2636 阅读 · 0 评论 -
Android Broadcast 做的简单封装:
在开发过程中,突然发现广播的使用非常的多,因此作出如下三步使用流程,并封装一个BoradcastManager类: (1)在任何地方发送广播 BroadcastManager.getInstance(mContext).sendBroadcast(FindOrderActivity.ACTION_RECEIVE_MESSAGE); (2)页面在onCreate()中初始化广播原创 2016-02-19 13:51:30 · 2525 阅读 · 1 评论 -
Android 实现答题器功能(通过手势实现翻页效果)
Android 实现答题器功能(通过手势实现翻页效果)1.问题描述Android答题器的实现主要使用了ViewFilpper和GestureDetector来实现。2.实现思路把Activity的TouchEvent事件交个GestureDetector来处理,然后使用ViewFilpper使用动画控制多个组件的之间的切换效果。手势的一个Api就不详细说了,大家如果不了解可以查一下。3.实现的步骤原创 2016-05-03 16:48:52 · 7160 阅读 · 1 评论 -
Android采用双缓冲实现画板
1.双缓冲技术的概念所谓的双缓冲技术其实很简单,当程序需要在指定的View上进行绘制时,程序并不需要直接绘制到该View组件,而是先绘制到一个内存中的Bitmap图片上(就是缓冲),等内存中的Bitmap绘制好之后,再一次性将Bitmap绘制到View组件上。2.Android采用双缓冲实现画板2.1 实现的思路:1.定义一个内存中图片,将他作为缓冲区Bitmap cacheBitmap = nul原创 2016-04-26 09:38:27 · 2225 阅读 · 0 评论 -
Android中ExpandableListView中嵌套ListView
最近项目挺紧张,一直没有时间总结学习,今天把这次项目中一个奇葩的设计,做一下总结。其他的好多的APP中做的通讯录都类似微信通讯录这样,但是我们通讯录却设计成了这样。就是分为两个组,第一个组不需要A-Z的索引,第二组需要A-Z的索引。 看上去不咋的,但是作为我们程序员还是要实现啊。1.实现思路1.写布局文件,将ExpandableListView添加到布局文件。 2.写MyExpandabl原创 2016-04-12 20:33:24 · 12249 阅读 · 6 评论 -
Android BottomNavigationBar底部导航控制器的使用
最近Google在自己推出的Material design中增加了Bottom Navigation导航控制。Android一直没有官方的导航控制器,自己实现确实是五花八门,有了这个规定之后,就类似苹果的底部Toolbar,以后我们的APP就会有一致的风格,先看一张效果:这是官方在Material design中给出一张图,确实很不错。1.BottomNavigationBar的下载地址https:原创 2016-03-23 12:37:25 · 60919 阅读 · 35 评论 -
Android设备间实现蓝牙共享上网
Android设备之间可以除了通过wifi热点共享上网,还可以通过蓝牙共享上网,后面这个功能很少人使用,但适合某台设备没有wifi却有蓝牙的情况。一、设置WT19i,系统设置》无线连接》网络共享》开启蓝牙共享网络(这步很多人忽略,导致无法上网)二、开启N7 二代蓝牙并配对,返回WT19i,已配对设备》配置》开启互联网连接共享三、设置N7 二代,已配对设备》配置》开启互联网访问(第二步主机共享没开启的原创 2016-03-09 09:55:06 · 5836 阅读 · 2 评论 -
Android WebView使用
最近,探究了一下WebView,总结一下最常使用到的几个方法 1.加载页面 webView.loadUrl("https://www.baidu.com"); 2.设置支持JS webView.getSettings().setJavaScriptEnabled(true); 3. 清除浏览器缓存 webView.clearCac...原创 2016-02-19 09:54:06 · 1590 阅读 · 0 评论 -
Android中WebView加载本地Html,与JavaScript与Android方法相互传值
最近在做项目中,要使用HightChart来实现心电图,于是,使用WebView加载本地html页面,但是数据是通过蓝牙设备采集的数据,用Java代码获取的数据,需要将数据传到JavaScript中去,使用来绘制心电图。以前都加载服务器端返回的url地址,使用WebView加载,这次不同了,要自己实现心电图的绘制。于是细细的学习了JavaScript与Java代码相互传值,最后总结在这里。为了让We原创 2016-06-25 16:56:42 · 11970 阅读 · 0 评论 -
Android数据库新王者-Realm入门教程
好长时间没有写关于Android方面的学习文章了,今天给大家带来的是堪称是一个可以替代SQLite以及ORMlibraries的轻量级数据库—Realm移动端数据库。相比SQLite,Realm更快并且具有很多现代数据库的特性,比如支持JSON,流式api,数据变更通知,以及加密支持,这些都为安卓开发者带来了方便。Ream提供了五种编程方式的实现。分别是Java,Objective C,Swift,原创 2016-06-10 23:23:13 · 3984 阅读 · 0 评论 -
Error:Failed to complete Gradle execution. Cause: Unknown command-line option '-X'解决方法
今天新建android studio项目时候。突然遇到如下问题:很是操蛋。最后发现时候用于Setting->compiler - Command-line Optons:-Xmx2048m导致的。解决办法是将Command-line Optons的参数删除,设置为空就ok了原创 2017-02-13 16:23:02 · 5646 阅读 · 0 评论 -
Macaca自动化测试Android和IOS应用
1.Macaca简介Macaca是阿里巴巴集团开发的一套完整的自动化测试解决方案。2.特性:支持移动端和PC端支持Native, Hybrid, H5 等多种应用类型提供客户端工具和持续集成服务3.macaca-cli客户端的安装:3.1安装 Node.js请安装 Node.js v4.0 或者更高版本,装好 Node.js 后命令行里就已经集成了 npm 工具,为了提高安装模块的速度,请使原创 2017-01-04 17:39:55 · 15373 阅读 · 1 评论 -
Android 打开本地pdf文件
Android 中打开pdf文件也是一种很常见的场景,但是上网找了好多资料,有用WebView加载的,但是要用vpn才能搞,最后发现一个库挺不错的,再次分享给大家 android-pdfview。下面主要说一下该库的使用方法。1. 该库的下载地址https://github.com/JoanZapata/android-pdfview 2. android-pdfview的简单介绍 PDFVi原创 2016-11-02 15:18:51 · 14292 阅读 · 42 评论 -
快速定位解决Android内存泄漏
今天的主题是Android开发中的内存泄漏,之所以说这个是因为前几天做了项目中的内存泄漏排查与解决,在这里总结一下,被提供一种快速定位解决Android内存泄漏的方案,希望大家看完有所收获。1 奠基之石——内存泄漏概述在介绍内存泄漏之前很有必要提及一下Android系统的垃圾回收机制。Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一转载 2016-10-26 09:39:35 · 595 阅读 · 0 评论 -
Android Retrofit 2.0框架上传图片解决方案(一张与多张的处理)
标题: Android Retrofit 2.0框架上传图片解决方案(一张与多张的处理) 1.单张图片的上传 /** * 上传一张图片 * @param description * @param imgs * @return */ @Multipart @POS原创 2016-01-29 17:01:45 · 19855 阅读 · 11 评论 -
Android中RxJava+Retrofit2.0+MVP模式的整合
Android中MVP+RxJava+Retrofit2.0的整合转载请标明出处:http://blog.csdn.net/u010046908/article/details/50767904 本文出自:【李东的博客】MVP的工作原理以上是MVP的工作原理图。其中大家注意的Presenter操作View和Mode都是通过接口来实现直接的调用。MVP的工作流程Presenter负责逻辑的处理,原创 2016-03-02 17:01:40 · 21504 阅读 · 24 评论 -
Android应用开发中三种常见的图片压缩方法
Android应用开发中三种常见的图片压缩方法,分别是:质量压缩法、比例压缩法(根据路径获取图片并压缩)和比例压缩法(根据Bitmap图片压缩)。一、质量压缩法private Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); ima原创 2016-08-30 13:42:49 · 1922 阅读 · 1 评论 -
Android中WebView加载本地Html,与JavaScript与Android方法相互传值(续)
接着上篇Android中WebView加载本地Html,与JavaScript与Android方法相互传值,今天来一篇续集,为什么要来续集呢,感觉自己还有没有交代完的部分,于是在这里再次交代一下,在Android中我们需要将给复杂的数据传到Html页面,我们该怎么做?大家作为一直搞android或IOS的小伙伴们,有好多对Html都了解不是太多,于是思考了一番,无非就是向Html页面传值吗?我就只会原创 2016-07-02 09:14:28 · 7351 阅读 · 1 评论 -
OkHttp网络连接封装工具类
最近,临近春节放假,把自己最近项目中使用 的okhttp使用做个总结,将自己的工具类贡献出来。其中有部分是参考了鸿洋的部分。 就直接上代码。 package com.lauren.simplenews.utils;import android.os.Handler;import android.os.Looper;import com.google.gson.interna原创 2016-01-31 14:31:57 · 5868 阅读 · 8 评论 -
Android百分比布局初探
标题:Android百分比布局初探依赖库:——com.android.support:percent实现原理:在这个包里面有两个新的容器类1、PercentRelativeLayout2、PercentFrameLayout在此看来,这两个类很显然是继承自 FrameLayout和 RelativeLayout两个容器类。新的原创 2015-09-29 09:56:22 · 881 阅读 · 0 评论 -
Android 6.0(API级别23)包括各种系统变化和API的行为变化。
随着新的特性和功能,Android 6.0(API级别23)包括各种系统变化和API的行为变化。本文强调一些关键的变化,你应该理解和考虑在你的应用程序。如果你有以前发表的Android应用程序,请注意,这些变化在影响你的应用程序平台。 1.运行时的权限 这个版本引入了一个新的权限模型,用户现在可以在运行时直接管理应用程序的权限。这个模型提供了改进的可见性和控制用户权翻译 2016-01-18 09:39:53 · 2401 阅读 · 2 评论 -
Android源码分析-Alarm机制与Binder的交互
http://blog.csdn.net/singwhatiwanna/article/details/18448997转载 2015-11-06 21:51:07 · 547 阅读 · 0 评论 -
AndroidSweetSheet
介绍:一个富有动感的Sheet(选择器), 支持背景虚化,背景暗化,支持快速拓展.支持从 Menu 中填充数据。运行效果:使用说明:上面是设计图,demo运行效果图:MainActivity.class123456789原创 2015-11-07 11:25:09 · 911 阅读 · 0 评论 -
Android学习资源网站
1.http://www.mobile-open.com/ 阳和移动开发2.http://www.apkbus.com/design/ Android设计3.http://android.xsoftlab.net/ Android官网原创 2015-11-04 14:11:38 · 577 阅读 · 0 评论 -
Android ListView的上拉刷新,下拉加载功能(pull - to -refesh)
最近研究了一下Android ListView的上拉刷新,下拉加载功能,采用了目前比较火的PullToRefresh,他是目前实现比较好的下拉刷新的类库。目前他支持的控件有:ListView, ExpandableListView,GridView,WebView等。把自己的学习过程记录一下:步骤:1.从github下载:Android-PullToRefresh的库文件,导入到项目中(下原创 2015-08-18 11:53:21 · 1070 阅读 · 0 评论 -
Android 软键盘遮挡三种解决方案
Android 软键盘遮挡三种解决方案方法1:在activity中的onCreate 中setContextView之前写上这行代码:getWindow().setSoftInputmode(WindowManger.LayoutParams.SOFT_INPUT_ADJUST_PAN);方法2:在AndroidMiainFrist.xml 文件中的activity中加入andro原创 2015-08-17 15:38:43 · 805 阅读 · 0 评论 -
Android 升级数据库的最佳写法
Android 升级数据库的最佳写法方法:原创 2015-08-17 16:30:37 · 689 阅读 · 0 评论 -
Android Studio 快捷键的使用
快捷键的使用Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+E或者Alt+Shift+C 最近更改的代码Ctrl+R 替换文本Ctrl+F原创 2015-07-22 11:58:55 · 584 阅读 · 0 评论 -
快递100接口解析与Volley自定义XML解析
标题:快递100接口解析与Volley自定义XML解析1.申请快递100的秘钥:1、应用场景(1)电商网站用户打开“我的订单”时调用此API显示结果(2)物流系统对帐前调用此API查一次所有运单的签收状态2、是否需要授权是,请到 快递查询API申请地址 申请3、请求地址http://api.kuaidi100.com/api?id=[]&原创 2015-10-09 12:57:40 · 2285 阅读 · 0 评论 -
使用Volley传输网络数据
Volley 是一个HTTP库,它能够帮助Android apps更方便的执行网络操作,最重要的是,它更快速高效。可以通过开源的AOSP 仓库获取到Volley 。 Volley 有如下的优点: 自动调度网络请求。高并发网络连接。通过标准的HTTP的cache coherence(高速缓存一致性)使得磁盘与内存缓存不可见(Transparent原创 2015-11-07 16:35:39 · 916 阅读 · 0 评论 -
Android Retrofit 2.0框架 GET和POST的实现方式(配合RxJava)
Android Retrofit 2.0框架 GET和POST的实现方式(配合RxJava) 简单说两句,该框架是okhttp再次封装的实现,性能挺高的哦。不罗嗦了,直接上代码1.需要的类库: compile 'com.squareup.retrofit:retrofit:2.0.0-beta2' compile 'com.squareup.retrofit:con...原创 2016-01-29 17:24:45 · 10131 阅读 · 0 评论 -
Android中实现短信验证码自动填入
Android中实现短信验证码自动填入由于目前的好多应用都有短信验证,短信验证码收到后,用户手动输入已经显得有麻烦,于是我写了这篇博文,希望能对大家有所帮助。实现步骤:1.写一个SmsBroadcastReceiver,在AndroidMainifirst.xml文件中注册:/** * 配置广播接收者: * * 表示: * 设置此广播接收者的级别为最高 */原创 2015-08-17 14:47:37 · 1045 阅读 · 0 评论 -
Android 的自定义等待对话框
最近,看了好多的APP的等待对话框,发现自己的太lower,于是就研究了一番,最后经过苦心努力,实现一个。自定义一个LoadingIndicatorView(extends View )类编写values/attrs.xml,在其中编写styleable和item等标签元素在布局文件中LoadingIndicatorView使用自定义的属性(注意namespace)在LoadingIn原创 2016-01-31 13:10:33 · 2199 阅读 · 2 评论 -
Android 按钮点击两次触发不同的事件
标题:Android 按钮点击两次触发不同的事件方案:采用flag标记的方式,每次单击标记为0,再次点击判断flag的值package com.ldl.ui; import android.app.Activity;import android.os.Bundle;import android.view.View;import android转载 2015-07-30 11:35:57 · 6101 阅读 · 7 评论 -
关于com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536的解决方法
标题:关于com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536的解决方法 1、为什么会出现次问题? (1)、如果大家的项目中使用了Butterknife-7.0.1.jar ,像我这种英语很差的人,在不同的布局文件中,会使用相同的id,所原创 2015-12-08 09:46:52 · 3053 阅读 · 0 评论 -
Android 访问WebService
首先,WebService进年来的使用人数很多了,它可以是一套接口多端调用,返回的格式是JSON和XML。在项目中使用的,可以分为如下的四个步骤: 1.下载ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar文件 2.开始创建HttpTransportSE 对象 3.使用Soap1.1的协议创建SoapSeriali原创 2016-01-12 13:27:08 · 2297 阅读 · 0 评论 -
Android中SwipeMenuListView的使用
标题:Android中SwipeMenuListView的使用步骤: 1.在布局文件中初始化做SwipeMenuListView 2.在创建SwipeMenuCreator对象 3.创建SwipeMenuItem,设置背景、宽度、图标 4.将SwipeMenuItem添加到SwipeMen原创 2015-07-21 17:08:21 · 1889 阅读 · 1 评论 -
Android中(Service )服务的最佳实践——后台执行的定时任务
Android中的定时任务一般有两种实现方式,一种是使用Java API里提供的Timer类,一种是使用Android的Alarm机制。这两种方式在多数情况下都能实现类似的效果,但Timer有一个明显的短板,它并不太适用于那些需要长期在后台运行的定时任务。我们都知道,为了能让电池更加耐用,每种手机都会有自己的休眠策略,Android手机就会在长时间不操作的情况下自动让CPU进入到睡眠状态,这就有可原创 2015-08-17 17:09:02 · 5161 阅读 · 2 评论 -
关于Android中的onCreate()多次被调用导致bindService被多次调用的问题
最近在做公司项目的时候,遇到了一个很怪的问题,就是Application的onCreate()方法多次被调用, 导致bindService被多次调用,以致于程序出现ANR。 问题描述: 用于某些需要,我在onCreate()方法中bindService,产生ANR。 说明部分: 每个android应用都要运行在一个原创 2016-01-13 16:45:58 · 5300 阅读 · 0 评论