Android开发的点点滴滴
文章平均质量分 92
记录Android开发的点点滴滴。
提笔忘字
不积跬步,无以至千里。不积小流,无以至江海。
展开
-
Android 6.0权限动态申请
从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。此方法可以简化应用安装过程,因为用户在安装或更新应用时不需要授予权限。它还让用户可以对应用的功能进行更多控制;例如,用户可以选择为相机应用提供相机访问权限,而不提供设备位置的访问权限。用户可以随时进入应用的“Settings”屏幕调用权限。系统权限分为两类:正常权限 和 危险权限:正常权限原创 2017-02-09 17:43:03 · 925 阅读 · 0 评论 -
GPS设备定位的经纬度偏移转换
最近在做公司的一个项目中,通过终端设备上传的经纬度数据在手机APP上通过百度地图显示给用户,可是发现一只有偏差,后来查找资料发现是国家测绘局对地理位置进行了加密导致的。国际经纬度坐标标准为WGS-84,为了符合国家测绘局对地理信息保密要求,国内必须至少使用国测局制定的GCJ-02,对地理位置进行首次加密。例如百度坐标在此基础上,进行了BD-09二次加密措施,更加保护了个人隐私。百度对外接口的坐标系并原创 2017-01-05 17:56:21 · 9567 阅读 · 2 评论 -
Android 内存泄漏总结
摘要Android 内存泄漏总结 内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收。最近自己阅读了大量相关的文档资料,打算做个 总结 沉淀下来跟大家一Android 内存泄漏总结内存管理的目的就是让我们在开发中怎么有效的避免转载 2016-07-14 17:20:22 · 5710 阅读 · 0 评论 -
内存优化之浅谈onLowMemory和onTrimMemory
在android开发的过程中,我们会经常遇到oom的情况,这个问题一直是个头疼的问题。它就像是风湿的病症一样,很难根治。Android每个应用都有独立的DVM,每个DVM的内存分配也是有限的。当内存不足的时候,系统会杀死后台进程。这个时候ComponentCallbacks的onLowMemory方法会被回调,Application、Activity、Fragement、Service都是原创 2016-11-12 21:32:12 · 4790 阅读 · 0 评论 -
Volley导致内存泄露
在一次使用Android Monitor为项目做内存泄露分析的时候,发现Volley会造成内存泄露通过上图可以看到是因为StringRequest的两个请求回调接口占用造成的Activity内存泄露,经过查找资料发现是因为Volley的bug造成的解决办法:改用 https://github.com/mcxiaoke/android-volley 通过对这个库的简单研究,发现与google的Voll原创 2016-12-06 18:53:02 · 1473 阅读 · 0 评论 -
利用观察者模式(发布/订阅模式)制作一个“代替”广播的通知类
我们们通常会遇到这样一个问题,从MainActivity跳转到BActivity,在BActivity中我们做了一些操作,需要MainActivity更新界面,我们经常会用startActivityForResult来操作。但是如果是MainActivity —> ….. —>BActivity 中间跳转了多个Activity,用这个方法岂不是很复杂,当然有的朋友会在MainActivity类里面注原创 2016-11-28 18:09:21 · 4960 阅读 · 2 评论 -
Gradle 'xxxxx' project refresh failed
Gradle 'xxxxxx' project refresh failedError:Unable to start the daemon process.This problem might be caused by incorrect configuration of the daemon.For example, an unrecognized jvm option is used.Please refer to the user guide chapter on the daemon at原创 2016-10-19 17:56:53 · 4368 阅读 · 2 评论 -
Gradle 'xxx' project refresh failed Error:Could not download rxjava.jar
新安装的Android Studio,从Git上Clone下来的项目,但是Gradle编译不过去。一直报Gradle 'XXX' project refresh failedError:Could not download rxjava.jar (io.reactivex:rxjava:1.1.3): No cached version available for offline mode原创 2016-10-26 22:06:38 · 7159 阅读 · 3 评论 -
Android内存泄露分析工具—Android Monitor
内存泄露大家应该不会陌生了,通常是因为该被释放的对象被占用,不能及时对其释放,导致GC无法正常回收。我们可以使用一些工具来监控和分析导致内存泄露的位置和原因。用Eclipse的同志应该都知道MAT(Memory Analysis Tools),Android Studio当然也不甘示弱,也有其强大的Android Monitor。Android Monitor是Android Studio自带的一个原创 2016-12-21 09:51:14 · 11012 阅读 · 0 评论 -
adb工具(通用的调试工具、debug工具)&操作命令详解
adb工具(通用的调试工具、debug工具)&操作命令详解adb(Android Debug Bridge)是Android提供的一个通用的调试工具,说白了就是debug工具。借助这个工具,我们可以管理设备或手机模拟器的状态。个人常用功能1、在设备上运行shell命令2、安装卸载程序3、推送文件到设备中4、从设备中推送文件到PC端5、快速重启工具需求各机转载 2016-04-07 15:29:27 · 2346 阅读 · 0 评论 -
Android应用性能优化实践
Android系统不断进化,开发者优化应用的手段也在变多。本文作者总结归纳了Android性能优化的原则,讲解如何使用现有的工具去分析解决性能问题,并结合自身实践给出了常用的内存优化技巧。本文出自:UDI COHEN,作者:Udi Cohen;译文出自:开发技术前线,译者:Zijian Wang几周前,我在Droidcon NYC上有过一次关于Android性能优化的演讲。我在这个转载 2016-07-14 18:07:07 · 6001 阅读 · 0 评论 -
修改Android签名证书keystore的密码、别名alias以及别名密码
之前在测试Eclipse ADT的Custom debug keystore自定义调试证书的时候,发过一篇关于调试证书规格的博文:Eclipse ADT的Custom debug keystore所需证书规格,提到过自定义调试证书的密码和alias命名以及alias密码都是有规矩的。其实Android应用开发接入各种SDK时会发现,有很多SDK是需要靠package name和keysto转载 2016-09-01 17:15:10 · 1007 阅读 · 0 评论 -
virtualbox 不能为虚拟电脑打开一个新任务怎么办?
想做android-23 和android-24的适配,但又没有真机,于是就下载了Genymotion安装上,在里面找的android6.0对应的机型下载了半天终于装上了。可是怎么也打不开,这让人难受的,百度了半天找的几个方法:1.查看C:\windows\system32目录下,有这三个文件themeservice.dll.backup 、themeui.backup 、uxtheme.原创 2016-10-26 15:30:32 · 9161 阅读 · 0 评论 -
AlertDialog不显示message和title
在开发过程中经常会用到提示对话框AlertDialog,在使用android6.0的模拟器的时候会出现message和title文字都不显示了。有两个办法解决这个问题:1.一般都是使用 android.app.AlertDialog包下面的AlretDialog,更换到 android.support.v7.app.AlertDialog包下面的AlretDialog就ok了他们的原创 2016-11-01 13:38:55 · 4136 阅读 · 0 评论 -
TextInputLayout的使用
简介 在2015谷歌IO大会上,谷歌给我们带来了Android Design Support Library,该库向下兼容到Android2.2,对于开发者来说无疑是一件美好的事情。TextInputLayout正是该支持包的新控件,它能使用户正在输入文本的时候hint内容自动显示在输入框的上方。先上一张效果图(不要看质量)实现步骤 1.导入com.android.support:design原创 2016-11-16 22:52:30 · 1791 阅读 · 0 评论 -
Android 数据库框架LitePal使用详解
以前一直觉得Android对SQLite数据库的操作非常简单,封装的很完善了。当我看到了郭神的LitePal框架之后我就在心理暗笑了,原来数据库还可以这样玩,真是大开眼界了。甚至你都不用写一句SQL语句,也不用考虑表之间的关联,这些都由LitePal来替你完成,配置和学习起来也是相当简单一、配置 1. 引入Jar包或源码首先我们需要将下载好的LitePal的jar包引入到项目当中,或者原创 2016-11-22 17:12:05 · 12646 阅读 · 2 评论 -
Android面试题-最新
其实面试题并不是只有需要面试的朋友看的,平时看看巩固一下,加强记忆也是很好的,下面我在网上查找了一些Android面试题,希望可以帮到大家,也为自己温习起到帮助。 Java部分Switch能否用string做参数? 在 Java 7 之前, switch 只能支持byte,short,char,int 或者其对应的封装类以及 enum 类型。在JAVA 7中,String 支持被加上了。原创 2016-12-08 22:04:48 · 3421 阅读 · 0 评论 -
超好用的Android日志打印框架--Logger
Android提供的打印日志的方法是通过android.util.Log类来打印我们需要的日志信息,当打印的日志很多的时候,我们需要查看是哪一行就比较困难,除非你打上了标记,但是这样会比较麻烦。这个时候我们可以使用Logger来替代android.util.Log的日志打印。我们在开发过程中,会打印很多日志信息,这些信息可能会包含一些敏感信息,而我们在把应用打包发布的时候肯定不希望这些日志继续打印(可能会被同行看到)原创 2016-12-27 14:15:27 · 9851 阅读 · 0 评论 -
Android定位--GPS定位与LBS基站定位
虽然现在第三方的定位非常强大,非常方便,但是我们在只需要很简单的定位,且不想用第三方的时候,我们可以自己动动手,基于GPS卫星定位和LBS基站定位的方式获取当前位置。其实我这里测试LBS定位比GPS定位出来的详细信息更加准确,GPS定位超级费电,可能是我这手机比较low,打开一会儿手机就发热,电池掉的也飞快。原创 2016-12-28 17:45:59 · 6735 阅读 · 1 评论 -
Android利用Socket(TCP)通信实现即时聊天
TCP 是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称 TCP / IP。java中的TCP通信都是通过Socket来进行的。Socket 编程 Socket是应用层与TCP/IP协议簇通讯的中间抽象层,Socket是一组接口,在设计模式中,Socket的设计就是门面模式,它把复杂的TCP/IP协议簇的内容隐藏在套接字接口后面,用户无需关心协议的实现,只需使用S原创 2017-01-08 00:53:43 · 23909 阅读 · 3 评论