Android
文章平均质量分 86
bit_kaki
不做研发多年,隐身中...
展开
-
Android Butterknife 框架源码解析(1)——ButterKnife的使用
ButterKnife是目前常用的一种依托Java注解机制实现辅助代码生成的框架,有了它,妈妈再也不用担心我写大量枯燥的findViewById以及OnXXXListener响应事件了,一行代码就搞定,自从接触它以后我就再也离不开它了。既然如此,我也就抽个时间,好好研究了一下它,总结一下它的使用方法和原理。 配置编译环境因为ButterKnife用到了注解处理器,所以比起一般的框架多了原创 2017-07-10 16:27:49 · 7510 阅读 · 2 评论 -
ArcGIS for Android 离线数据图例加载
图例是地图展示里常用的辅助展示工具。曾经我采用过将图例截成图片转为2进制保存到数据库里,然后在加载图层时候调取对应图片作为图例展示。但是后来知道geodatabase数据其实就是个空间数据库,如果是通过geodatabase数据加载图层,图斑都是geodatabase数据里的空间数据Geometry根据样式Symbol进行动态渲染,所以这个Symbol如果能提取出来,也就是我们要的图例了。根据这个原创 2017-08-09 19:35:58 · 8408 阅读 · 1 评论 -
ArcGIS for Android 离线数据空间查询--I查询
空间查询原创 2017-08-01 18:03:04 · 9417 阅读 · 0 评论 -
ArcGIS for Android 离线数据空间分析--叠加分析
上一章我们以I查询为例讲述了在ArcGIS for Android里如何进行离线数据空间查询,通过ArcGIS 10.2以上的SDK里中QueryParamters类里设置查询参数,然后到对应空间数据库里查询即可。在了解如何空间查询以后,接下来我们以叠加分析为例说下ArcGIS for Android里如何进行离线数据的空间分析。 空间分析,顾名思义就是对空间数据进行分析,所原创 2017-08-02 16:29:25 · 9300 阅读 · 10 评论 -
Android 自定义搜索框
现在市场上Android软件流行的搜索框,普遍来说都是点击之后进入一个新的页面,在新的页面里展示出历史搜索、热门搜索,输入字以后显示联想关键词,点击这些词或者搜索按钮时候再进行搜索。然而在平板上,横屏展示时候再用这样的方式就很糟糕,加上我们产品搜索库的底层为地图,搜索内容的内容也多是数字内容,于是联想关键词也没有太大意义。于是最后设计出来的搜索框就是这样一个需求:1.搜索框在不同模块的提示原创 2017-07-11 20:04:36 · 8315 阅读 · 0 评论 -
Android okhttp+rxjava实现多文件下载和断点续传
首先先感谢风神,核心代码源于他的这篇微博http://blog.csdn.net/cfy137000/article/details/54838608,思路很棒。基于他的代码做了一些改动,实现我所需功能。 先说下我的需求。我的需求是PC端先进行更新数据的管理,然后移动端登录时候会自动访问服务,传入mac值,获取需更新数据的信息。如下图所示:原创 2017-05-19 21:50:58 · 17136 阅读 · 54 评论 -
Android APK版本更新下载
今天做了下APK版本更新的功能。其实关于APK版本更新相关的文章网上挺多的,功能实现上也并不难。基本思路就是讲当前APK的版本号和服务器上保存的最新APK包的版本号进行对比,如果当前版本小于最新版本,则进行下载更新。流程图如下: 引用的第三方jar包有okhttp,okio(为了支持okhttp)和gson:compile 'com.squareu原创 2017-05-17 20:48:18 · 10945 阅读 · 8 评论 -
《Android群英传》笔记6——自定义ViewGroup
之前说过了自定义View,而对于自定义ViewGroup来说,主要是定义和管理该ViewGroup里的子View。所以自定义ViewGroup里往往需要重写onMearsure()方法来完成对各子View的测量,重写onLayout()方法来完成对各子View的位置布局,重写onTouchEvent()来完成响应事件。至于为啥没有说onDraw()方法呢,其实在draw阶段,ViewGroup都是原创 2017-05-26 15:09:05 · 6885 阅读 · 0 评论 -
《Android群英传》笔记5——自定义View
自定义View本文是读了《Android 群英传》第三章--Android体控件架构与自定义空间详解--之后的读书笔记,感谢作者,在此特别推荐此书。 Android给我们提供了常用组件,然而随着开发的深入,这些组件渐渐无法满足我们各式各样的需求,此时就需要我们在已有的组件上创建新的功能,甚至是直接自己写一个新的View控件,来满足自己的需要。这就是我们常说的自定义View原创 2017-05-25 18:39:47 · 6952 阅读 · 1 评论 -
《Android群英传》笔记4——View绘制流程分析及重写
View的绘制流程分析与重写本文是读了《Android 群英传》第三章--Android体控件架构与自定义空间详解--之后的读书笔记,感谢作者,在此特别推荐此书。 从上篇博客,我们了解到Android里View是所有UI组件的基类,Android里所有控件和布局都是直接或者间接自View实现的。View的绘制就如我们日常画画一样,首先需知道画画内容的大小,然原创 2017-05-14 22:06:28 · 6751 阅读 · 0 评论 -
ArcGIS for Android中坐标的转换
在我们的GIS应用项目里,常常遇见坐标转换的问题。最常见的就是WGS84坐标转其他坐标系,原因是WGS84坐标系是目前GPS数据采集所用的坐标系,而我国实际生产项目里常用的地图却是北京54坐标系,西安80坐标系以及中国大地2000坐标系等。所以当我们用设备采集到GPS经纬度以后,需要将其进行坐标转换才可以正确显示到我们使用的地图上。 对于坐标转换,有一种高精度而且任何时候都可以采用的原创 2017-07-28 14:34:14 · 13606 阅读 · 0 评论 -
ArcGIS for Android Runtime100 基本操作(五)——绘制图层和符号渲染
在ArcGIS里我们经常要高亮显示一些图形,比如GPS轨迹,查询、分析出来的地块图形等。在ArcGIS10.2.X版本里,一般我们都会新建FeatureLayer来放置这些图形,然后渲染显示;但是在Runtime100 里删除了这个类,取而代之的是一个新类——GraphicsOverlay作为绘制图层,并和地图内容分开来。其和MapView以及ArcGISMap的关系如下所示:原创 2017-09-23 15:46:42 · 12854 阅读 · 9 评论 -
Android Butterknife 框架源码解析(2)——谈谈Java的注解
注解是Java里一个重要的概念,可以用来修饰类、字段和方法等。它的基本结构就是一个@加上一个字符串,放在需要修饰的类、字段、方法前面,比如我们熟悉的@Override,在一个方法前面加上它,表明接下来的方法执行时候会重写其父类中相应方法。而在我们的ButterKnife框架里,功能的实现基本上都是依靠注解来完成。所以,我们先来研究下注解到底是什么?注解是什么 注解的英文是Anno原创 2017-07-12 18:48:41 · 6975 阅读 · 0 评论 -
Android Butterknife 框架源码解析(3)——Butterknife 8.7.0源码分析
前两篇分别说了下ButterKnife的用法以及讲了下什么是注解,接下来就是要说一下ButterKnife的源码了,通过源码来看ButterKnife是如何实现的。 首先我们看看@BindView注解的源码:@Retention(CLASS) @Target(FIELD)public @interface BindView { /** View ID to which the原创 2017-07-19 19:28:42 · 7351 阅读 · 0 评论 -
ArcGIS for Android 自定义地图比例尺
在我们进行地图相关开发时候,避免不了要绘制比例尺。在百度,高德的地图API里都提供了比例尺控件,但是ArcGIS for Android里并没有提供。不过没关系,我们可以自己绘制一个比例尺来。 在绘制比例尺前,我们先了解几个概念: 1.PPI,Pixels Per Inch的所写,表示的是每英寸所拥有的像素数目; 2.Px,像素,表示图像中的一个最小单位;原创 2017-05-31 19:52:15 · 19046 阅读 · 94 评论 -
ArcGIS for Android Runtime100 基本操作(六)——移动地图包MMPK的使用
啊原创 2017-09-25 16:05:38 · 13789 阅读 · 14 评论 -
ArcGIS for Android Runtime100 基本操作(七)——三维地图初步使用
今年7月份,ArcGIS Runtime100总算推出第一个它的第一个资料片,哦不,更新版,ArcGIS Runtime100.1,也被称为Update 1。这个版本更新了一些API,填补了Runtime10.2和100之间的差距,修复了一些BUG以及新增几个功能。而新增功能里最让我们关注的就是Android SDK里也支持3D地图了。具体内容可以参见官网:https://developers.a原创 2017-09-27 14:09:42 · 9498 阅读 · 1 评论 -
《Android群英传》笔记7——事件拦截机制分析
我们平时点击屏幕时候,屏幕会根据我们不同的操作,比如单点、滑动、双击等做出不同的响应事件,这个过程我们称之为屏幕触摸事件。Android为这些触摸事件封装了一个类——MotionEvent,如果重写onTouchEvent()方法,就会发现该方法里就是用的MotionEvent这个参数。我们可以看官方里是这样介绍这个类的:* Object used to report movement (原创 2017-06-05 23:01:10 · 6178 阅读 · 0 评论 -
ArcGIS for Android Runtime 100 升级实践(一)地图加载,图形和符号初始化
去年的Esri大会,随着最新的ArcGIS 10.5产品的发布,全新的ArcGIS Runtime 100.0也随之发布。ArcGIS Runtime 100.0 可谓是有了个天翻地覆的改进,比如跨平台、3D地图的加载以及多样的地图离线选择等。其实这里面我最感兴趣的是可以加载MMPK数据,MMPK是一种全新的移动地图包,有很多创新和优势,总结起来是一下几点:数据存储于压缩的Mobile原创 2017-08-16 22:45:41 · 10827 阅读 · 1 评论 -
Java中的内存泄漏
本文转自https://github.com/francistao/LearningNotes/blob/master/Part2/JavaSE/Java%E4%B8%AD%E7%9A%84%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F.md该github下有很多Android技术的知识点,强烈推荐下!#Java中的内存泄漏1.转载 2017-09-18 20:21:00 · 5730 阅读 · 0 评论 -
ArcGIS for Android Runtime100 基本操作(四)——GPS定位
对于定位大家应该都不陌生,在Android设备里,主要存在GPS定位、网络基站定位、AGPS定位等。在这里我们不对各位定位方式做深入阐述,默认以AGPS来说明下如何在Runtime100实现定位。 其实ArcGIS Runtime系列一直自带有定位的接口,但据说是不好用,所以以往大家往往用的是Android原生自带的定位方法来实现定位。不过对于Runtime100,我进行了一原创 2017-09-20 19:15:55 · 15046 阅读 · 12 评论 -
《Android群英传》笔记1——Android系统架构
Android 架构系统 Android作为一个移动操作系统,研发初期即被Google收购。靠着Google这棵大树,加上其开源的特性,因而发展十分迅速。 这是一张常见的Android系统机构图,由此可见Android的系统架构一共有四层,分别是Linux内核层、库和运行时层、应用框架层以及应用层。 1、Linux内核层 Linux内核层是原创 2017-05-04 23:03:52 · 5808 阅读 · 0 评论 -
《Android群英传》笔记2——Android组件架构
Android组件架构本文是读了《Android 群英传》第一章--Android体系和系统架构调用栈--之后的读书笔记,感谢作者,在此特别推荐此书。 在Android的应用层里,Android的APP组件架构,即我们常说的四大组件:Activity,Service,Content Provider和Broadcast Receiver,组成了一个Android程序的最基本元素。原创 2017-05-05 10:22:09 · 5923 阅读 · 0 评论 -
cordova通过原生实现自定义功能
先闲谈说下最近的微信要出的小程序吧,感觉确实很牛逼,革命说不上吧但是也是一个新的大的机遇。不得不承认腾讯有两个相当好的平台,一个是QQ,一个是微信,毕竟人数基数大,任何新的东西都会带来相当多的机会和挑战。那个小程序好像是基于react native,也是一种混合架构。最近整理整理下混合架构的知识,有时间也好好学习去。 好了开始正题吧。 最近研究cordova通过原生原创 2016-10-04 13:38:15 · 11011 阅读 · 0 评论 -
Android文件命名规范初版
这个是老黄总结的,我搬了上来记录留着一下资源命名规则:(一) Layout命名1.contentview命名:activity_功能模块_属性说明.xml例如:activity_main.xml、activity_more.xml2.Dialog命名:dialog_描述_属性说明.xml 例如:dlg_hint.xml2.PopupWindow命名原创 2016-09-28 17:18:28 · 5944 阅读 · 0 评论 -
Android混合架构的实践
一、移动端跨平台的技术跨平台概念 跨平台是软件开发中一个重要的概念,即不依赖于操作系统,也不信赖硬件环境。一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。相对而言如果某种计算机语言不用修改代码即可做到高度跨平台,那么此语言就越抽象,硬件控制力就越低,只适合开发高度抽象的模型系统。诸如java,delphi和易语言,都已做到了跨平台。它们将可以在多种系统下开发,运行和维护。原创 2016-09-06 16:49:18 · 9655 阅读 · 0 评论 -
百度,高德,天地图Android导航模块对比
1.三个系统对比表名称最新版本发布日期主要功能坐标系特点优点缺点高德导航V1.9.22016年9月7日路径规划、模拟导航、GPS 定位、自定义导航界面、获取导航播报信息等。GCJ02坐标系:即火星坐标系,WGS84坐标系经加密后原创 2016-09-28 16:44:28 · 13457 阅读 · 0 评论 -
Android mac地址获取的方法小结及可能出现的问题
这段时间项目遇到个问题,客户把移动设备回厂修理后再安装我们的项目,运行会报错。后来经过我仔细排查发现一个很诡异的问题,就是无法获取mac地址了。于是我仔细把获取mac地址的一些资料看了看,加上一些调试,总算是解决了这个问题。现在决定把这块小结下,以免再次遇到问题。 mac地址又称为物理地址,和ip地址不同的是,mac地址由网卡决定,也就是一个设备只能有一个mac地址,所以经常作为唯一标原创 2016-10-11 15:08:09 · 20335 阅读 · 0 评论 -
【Android 基础】Animation 动画介绍和实现(转载)
最近做了下这方面的研究,在博客园上找到了一片很好很详细的文章,于是转了一下。原地址是http://www.cnblogs.com/yc-755909659/p/4290114.html1.Animation 动画类型Android的animation由四种类型组成:XML中alph渐变透明度动画效果scale渐转载 2016-10-10 15:27:01 · 6268 阅读 · 0 评论 -
Android中socket的应用
最近我在做一些关于实时网络双向通信的小玩意,于是开始接触用到了socket。 一开始看看socket的代码觉得并不难,但实际操作时候还是遇到不少问题,所以还是觉得好好整理一下socket在Android程序中的用法吧。 首先,什么是socket呢?百度百科上的解释是网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。简要的说socket就是一个原创 2016-07-11 16:57:33 · 4159 阅读 · 0 评论 -
Android利用mediacodec进行视频H264编码解码播放
H264是目前最常用的视频压缩格式之一,可以将视频、图片、音频等转换为字符串流形式,以此可以进行再次编辑、传输等。详情参考http://blog.csdn.net/lcalqf/article/details/42556219。在Android里,最常用的视频编码解码用的API就是mediacodec了,可以进行多种格式的硬解码,也能和mediamuxer一起使用实现音视频文件的编辑(结合Me原创 2016-08-03 17:30:22 · 38205 阅读 · 7 评论 -
Android屏幕上涂鸦画笔标记的实现
呃,这个名字取得很诡异,大概意思就是Android程序,以当前界面作为背景,用手触控作为一个画笔来进行涂鸦,标记等,和PPT里的画笔差不多一个意思吧。 根据这个需求,做出了以下的思路:首先是要获取一个屏幕大小的bitmap作为底图,设置为透明色。然后将一个canvas放在bitmap上,触控点击事件作为paint,然后就可以实现了。操作步骤如下:1.获取当前屏幕的原创 2016-08-04 17:27:36 · 7916 阅读 · 1 评论 -
Android中解析读取复杂word,excel,ppt等的方法
前段时间在尝试做一个Android里的万能播放器,能播放各种格式的软件,其中就涉及到了最常用的office软件。查阅了下资料,发现Android中最传统的直接解析读取word,excel的方法主要用了java里第三方包,比如利用tm-extractors-0.4.jar和jxl.jar等,下面附上代码和效果图。 读取word用了tm-extractors-0.4.jar包,代码如原创 2016-08-02 17:49:20 · 24451 阅读 · 295 评论 -
《Android群英传》笔记3——Android控件架构
Android控件架构本文是读了《Android 群英传》第三章--Android体控件架构与自定义空间详解--之后的读书笔记,感谢作者,在此特别推荐此书。 Android里每一个界面都来来自于Window类,该类是一个抽象类,提供了绘制窗口的一组通用API。可以将之理解为一个载体,各种View在这个载体上显示。如图所示:原创 2017-05-12 16:19:20 · 5674 阅读 · 0 评论 -
Android Activity生命周期和状态
本文是读了《Android 群英传》第八章--Activity和Activity调用栈--之后的读书笔记,详情见书。 Activity算得上是Android里最常见也最重要的组件了,一般情况下都被翻译为“活动”,但实际上我一直都是把它理解为“界面”,毕竟在Android四大组件里,只有Activity是和view直接进行交互的。从一开始学习接触Android开始,接触的第一行代码原创 2017-04-14 18:34:13 · 7562 阅读 · 0 评论 -
Android 通过反射调用获取内置存储和外置sd卡根路径(适用于各个版本)
Android系统里版本众多,设备型号众多,所以文件的路径有很多种。获取内存路径的方法有很多,最常见的是Environment和File 里的诸多方法,比如Environment.getDataDirectory()和File.getPath()等,以及网上查的形形色色各种方法。但是在不同的Android版本和设备里,这些方法对于获取设备内部存储没什么问题,但是获取SD卡路径往往有问题。后来自原创 2017-04-10 16:49:03 · 15361 阅读 · 19 评论 -
Android textview和listview实现水平自动滚动的走马灯效果
当我们遇到需要在一个textview里显示较长文字时候,往往有以下几种考虑: 1.换行,Android里本身也是这样在考虑; 2.可以进行水平或者垂直滑动; 3.采用走马灯效果。 其实这三种要实现都不难,根据实际情况进行选择就是了。不过我在具体实现走马灯时候遇到了一些问题,后来参考了下大神的代码,得以解决,记录原创 2017-04-13 16:19:08 · 9924 阅读 · 1 评论 -
Android文件相关操作整理
Android开发里经常涉及文件相关的操作,于是整理了下,将涉及文件操作放到了一个类里,调用时候比较方便。 主要包含了一下几类内容: 1.文件创建、读写、拷贝、删除; 2.整个文件夹下文件获取、复制、删除; 3.压缩、解压文件; 4.判断文件是否存在; 5.数据流和字节数组转换; 6.获取原创 2017-03-08 17:27:17 · 5903 阅读 · 0 评论 -
Android 后台记录GPS轨迹并转为80参数service
我们知道Android里都是用LocationManager来管理定位相关的操作, LocationListener来进行位置变化时候的监听,获取结果有三种条件下的经纬度坐标。 于是在写后台service时候主要是将每次监听到的经纬度记录下来,最后在转变为80的坐标。原创 2017-03-08 09:48:31 · 6826 阅读 · 0 评论 -
2016年末,Android岗位BAT等大厂面试题知识点小结(一)Android基础部分
前段时间网上到处都传一个比较火的帖子,名叫《2016年未,腾讯,百度,华为,搜狗和滴滴面试题汇总》,自己也看了看,发现知识点挺广的,所以试着尽力小结了下,也算是自我学习。对于各种知识点的详细解释,我给出自己认为比较好的博客的链接。不过毕竟自己还是菜鸟一枚,特别是在JVM这块,难免有错,希望各位多多指点下。 1.View的绘制流程;自定义View如何考虑机型适配;自定义View的事件分发机制原创 2017-01-03 21:37:29 · 10938 阅读 · 0 评论