
Android
文章平均质量分 69
franksight
这个作者很懒,什么都没留下…
展开
-
安卓 热修复-Tinker接入
本文主要讲tinker官方Demo的接入使用,没有用到tinkerPatch补丁后台管理系统。1.从git上面下载tinker的官方demo下来,里面的东西不深究,就直接从他的tinker-sample-android这个demo 开始2.将其导入as中,一般直接导入进来是无法运行的,他会报错,这是个什么错呢,啥玩意又是tinkerid呢,从上面的wiki里面可以看出这些参数的意思,如果对...原创 2019-07-09 11:46:20 · 382 阅读 · 0 评论 -
Could not find com.android.tools.build:aapt2:3.2.1-4818971.
Android Studio升级到3.2.1后,运行项目报如下错:Could not find com.android.tools.build:aapt2:3.2.1-4818971.Searched in the following locations: file:/D:/AndroidStudio/sdk/extras/m2repository/com/android/tools...原创 2018-10-29 17:58:12 · 23277 阅读 · 11 评论 -
RxJava+Retrofit+MVP+Dagger2
传说中的谷歌四件套,按顺序来哈~2017.2.20更新:对于用了一段时间的谷歌四件套的开发者们来说,基础应该都已经掌握的差不多了,但是四件套确实很博大精深,要想完全掌握,一是要学习使用技巧,二是要在实际项目中去实践。故推荐几篇技巧文和一个牛掰的开源项目,见文末。基础----RxJava----集合:RxJava学习文章大全 基础首推:1、给 Android 开发者的 RxJ...转载 2018-08-29 16:31:57 · 245 阅读 · 0 评论 -
Android中的MVP架构
一、架构演变概述我记得我找第一份工作时,面试官问我“android是否属于MVC架构模式,简述一下”。确实,Android的整体设计结构就是MVC的设计模式,在J2EE的开发中,使用的也是MVC模式,MVC模式是一个经典,经历了几十年的考验。Android项目中的MVC架构:View:是应用程序中处理数据显示的部分,对应于layout文件下的布局文件Model:业务逻辑和实体模型Controllo...转载 2018-06-22 11:17:55 · 361 阅读 · 0 评论 -
安卓中的buildToolVersion与CompileSdkVersion的区别
SDK中主要的目录:【build-tools】里面是不同版本(例如21.1.1)的build工具,这些工具包括了aapt打包工具、dx.bat、aidl.exe等等【platform】是存放不同API-level版本SDK目录的地方【platform-tools】是一些android平台相关的工具,adb、fastboot等【tools】是指的安卓开发相关的原创 2018-01-30 15:59:25 · 718 阅读 · 0 评论 -
Glide用法
当前较为知名的几个图片加载库是Universal-ImageLoader、Glide、Fresco、Picasso比较如下:Universal-ImageLoader库2015年年底作者已经停止维护Gilde是Picasso的优化版最后就是Facebook的Fresco,听说极为强大和高效率,但是大小有4M。最后Glide,google维护。Picasson的优化版,使用简单,原创 2017-09-12 16:08:27 · 249 阅读 · 0 评论 -
安卓图片反复压缩后为什么会普遍会变绿?
图片变绿是安卓系统一直以来的问题,直到 Android 7才修复。原因是安卓系统内部的一个核心部件的代码,为了优化手机上运行的速度——写错了 = =。问题出在 Android 提供的压缩图片接口上,准确的说是一个 Android 里一个叫做 Skia 的库上。问题出在 RGB 色彩空间转换到 YUV 的时候。但问题不仅仅是精度下降,最大的问题是,错误的舍入(向下取整)。现在就要说到 A原创 2017-08-24 11:50:50 · 3258 阅读 · 0 评论 -
Android Studio多渠道打包
说到多渠道,这里不得不提一下友盟统计,友盟统计是大家日常开发中常用的渠道统计工具,而我们的打包方法就是基于友盟统计实施的。按照友盟官方文档说明,渠道信息通常需要在AndroidManifest.xml中配置如下值:value="Channel ID" android:name="UMENG_CHANNEL"/>11 上面的value值Channel_ID就是渠道标识。我们的原创 2017-08-26 12:20:28 · 403 阅读 · 0 评论 -
理解RESTFUL架构
作者: 阮一峰日期: 2011年9月12日越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研转载 2017-08-22 21:36:47 · 301 阅读 · 0 评论 -
Xutils概述
xUtils简介xUtils 包含了很多实用的android工具。xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...xUitls最低兼容android 2.2 (api level 8)目前xUtils主要有四大模块:转载 2017-08-22 21:05:34 · 311 阅读 · 0 评论 -
Android Butterknife使用方法总结
前言ButterKnife 简介ButterKnife是一个专注于Android系统的View注入框架,可以减少大量的findViewById以及setOnClickListener代码,可视化一键生成。项目github地址:https://github.com/JakeWharton/butterknifeButterKnife 优势1、强大的原创 2017-08-04 14:00:22 · 1338 阅读 · 0 评论 -
总结Android各类常用三方框架
1.下拉刷新Android-Ptr-Comparison-Android 下拉刷新开源库对比,非常nice!!Android-PullToRefresh- 最经典、最多人用的下拉刷新、加载更多。PullDownListView- 一个下拉刷新的控件,实现了仿微信下拉中眼睛动画的效果。DragTopLayout- 实现整个layout下拉刷新。ZrcListView- 一个顺滑又...原创 2018-11-29 17:34:22 · 2125 阅读 · 0 评论 -
为什么要序列化数据
大家都知道进行Android开发的时候,无法将对象的引用传给Activities或者Fragments,我们需要将这些对象放到一个Intent或者Bundle里面,然后再传递。至于怎么实现序列化,反序列化相信网上的帖子一大堆了就不一一阐述了 一. 先说说什么是序列化—— 序列化,表示将一个对象转换成可存储或可传输的状态。序列化后的对象可以在网络上进行传输,也可以存储到本地。 二. 那么...原创 2018-12-19 13:50:05 · 1631 阅读 · 0 评论 -
安卓中文件读写-流操作
字节流与字符流的区别字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,所以InputStream需要提前设置缓存区大小,而字符流在操作的时候是使用到缓冲区的。字节流在操作文件时,即使不关闭资源(close方法),文件也能输出,但是如果字符流不使用close方法的话,则不会输出任何内容,说明字符流用的是缓冲区,并且可以使用flush方法强制进行刷新缓冲区,这时才能在不...原创 2019-06-27 16:12:35 · 6501 阅读 · 1 评论 -
AndroidStudio常用快捷键
最重要的快捷键1. ctrl+shift+A:万能命令行2. shift两次:查看资源文件新建工程第一步操作1. module设置把空包分层去掉,compact empty middle package2. 设置当前的工程是utf-8,设置的Editor-->File Encodings-->全部改成utf-8,注释1. ctrl+/:单行注释2. ...原创 2019-05-09 17:53:42 · 692 阅读 · 0 评论 -
Android:手把手教你构建 全面的WebView 缓存机制 & 资源加载方案
转自简书:https://www.jianshu.com/p/5e7075f4875f前言由于H5具备 开发周期短、灵活性好 的特点,所以现在 Android App大多嵌入了 Android Webview 组件进行 Hybrid 开发 但我知道你一定在烦恼 Android Webview 的性能问题,特别突出的是:加载速度慢 & 消耗流量 今天,我将针对 Android W...转载 2019-04-23 11:24:26 · 677 阅读 · 0 评论 -
安卓ADB shell 常用命令
一、文件操作相关命令1.文件操作命令子命令 参数 说明 cd 无 进入目录 cat [-beflnstuv] [-B bsize] [file...] 查看文件内容 -n:显示行号 -b:显示行号,但会忽略空行 -s:显示行号,连续空行标记为一行 df 无 列出分区列表 du [-H] [-L] [-P...原创 2019-04-08 11:48:47 · 1118 阅读 · 0 评论 -
2019安卓面试题整理(2)
1、Activity生命周期?onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDetroy()2、Service生命周期?service 启动方式有两种,一种是通过startService()方式进行启动,另一种是通过bindService()方式进行启动。不同的启动方...原创 2019-02-12 23:02:21 · 1347 阅读 · 1 评论 -
2019安卓面试题整理(1)
这些面试题是我在今年年初换工作的时候整理,没有重点。包括java基础,数据结构,网络,Android相关等等,包括一、二两部分。1、java中==和equals和hashCode的区别基本数据类型的==比较的值相等.类的==比较的内存的地址,即是否是同一个对象,在不覆盖equals的情况下,同比较内存地址,原实现也为 == ,如String等重写了equals方法.hashCode...原创 2019-02-12 20:18:52 · 12093 阅读 · 3 评论 -
RxJava 从入门到全解析
前言使用了RxJava有一段时间了,深深感受到了其“牛逼”之处。下面,就从RxJava的基础开始,一步一步与大家分享一下这个强大的异步库的用法!RxJava 概念初步RxJava 在Github Repo上给的解释是:“RxJava is a Java VM implementation of Reactive Extensions: a library for compos...原创 2018-12-10 17:59:12 · 790 阅读 · 0 评论 -
Retrofit--合理封装回调
绪论前面我们讨论了使用Retrofit时怎样去设置OKHttp,包括持久化管理Cookie、设置网络超时、设置打印拦截器、设置缓存、Header等等,详细可查看 Retrofit–使用Retrofit时怎样去设置OKHttp Retrofit+OKHttp 教你怎么持久化管理Cookie 今天我们讨论的主题是怎么封装回调才能完美的适应自己的需求。我们都知道代码风格是每个人都有自己的风格,不可能...原创 2018-12-13 17:13:29 · 757 阅读 · 0 评论 -
Retrofit 2.0 使用教程
本文的详细的使用细节请参考:https://blog.youkuaiyun.com/carson_ho/article/details/73732076Android Retrofit 2.0 使用-补充篇Retrofit的简易封装:https://blog.youkuaiyun.com/whj9073/article/details/84991663使用 Retrofit 的步骤共有7个:步骤1:添加R...原创 2018-12-13 16:52:04 · 541 阅读 · 0 评论 -
MVP简单小例子分析
大多数编程语言相关的学习书籍,都会以hello,world这个典型的程序作为第一个示例。作为Android应用开发者,无论使用eclipse还是用android studio,在新建项目的时候,一直按IDE默认选择项,下一步进行下去,就会创建出一个可以运行的hello,world应用程序。对于这个程序,可以认为是采用MVC模式,对应关系为:View:对应于布局文件 Model:业务逻辑和实体...原创 2018-12-19 14:30:49 · 735 阅读 · 0 评论 -
Cannot add extension with name 'android'......
在添加ButterKnife的时候,根据它的Readme配置以后报错:Error:(2, 0) Cannot add extension with name 'android', as there is an extension already registered with that name.如截图所示:解决方法如下:默认我们在自己的module下添加后是这原创 2017-08-11 11:05:49 · 3392 阅读 · 2 评论 -
Eclipse报错 Unable to build: the file dx.jar was not loaded from the SDK folder
由于最近通过SDK-Manager更新了build-tools,当要用到dx.jar这个包时,自动调用最新build-tools中dx.jar,但是运行Android项目时Console却提示:Failed to load C:\Program Files (x86)\android\android-sdk\build-tools\26.0.0-preview\lib\dx.jarUnab原创 2017-07-26 18:07:10 · 4786 阅读 · 2 评论 -
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 查找文本Ctrl+Shift+Space 自动原创 2017-07-21 11:59:51 · 924 阅读 · 0 评论 -
Android 图片压缩 策略
Android设备的内存有限,对于大图片,必须进行压缩后再进行显示,否则会出现内存溢出:OOM;处理策略:1.使用缩略图(Thumbnails);Android系统会给检测到的图片创建缩略图;可以操作Media内容提供者中的Image对图片进行操作;2.手动压缩:(1)根据图片和屏幕尺寸,等比压缩,完美显示;(2)降低图片质量,压缩图片大小;以下原创 2016-11-17 10:12:41 · 348 阅读 · 0 评论 -
ViewPager 快速切换卡顿 --性能优化
当ViewPager切换到当前的Fragment时,Fragment会加载布局并显示内容,如果用户这时快速切换ViewPager,即Fragment需要加载UI内容,而又频繁地切换Fragment,就容易产生卡顿现象(类似在ListView快速滑动的同时加载图片容易卡顿)。优化方案:1.Fragment轻量化 如果ViewPager加载的Fragment都比较轻量,原创 2016-10-09 14:58:07 · 7248 阅读 · 0 评论 -
Android大图片裁剪终极解决方案(下:拍照截图)
http://blog.youkuaiyun.com/floodingfire/article/details/8144617 上一篇博客中,我们学习到了如何使用Android相册截图。在这篇博客中,我将向大家展示如何拍照截图。 拍照截图有点儿特殊,要知道,现在的Android智能手机的摄像头都是几百万的像素,拍出来的图片都是非常大的。因此,我们不能像对待相册截图一样使转载 2016-08-24 21:05:03 · 342 阅读 · 0 评论 -
如何使用Android MediaStore裁剪大图片
http://blog.youkuaiyun.com/floodingfire/article/details/8144587译者:Ryan Hoo来源:http://www.androidworks.com/crop_large_photos_with_android 译者按:在外企工作的半年多中花了不少时间在国外的网站上搜寻资料,其中有一些相当有含金量的文章,我会陆陆续续翻转载 2016-08-24 21:02:37 · 279 阅读 · 0 评论 -
Android大图片裁剪终极解决方案(中:从相册截图)
http://blog.youkuaiyun.com/floodingfire/article/details/8144615 在这篇博客中,我将向大家展示如何从相册截图。 上一篇博客中,我就拍照截图这一需求进行了详细的分析,试图让大家了解Android本身的限制,以及我们应当采取的实现方案。 根据我们的分析与总结,图片的来源有拍照和相册,而可采取的操作有转载 2016-08-24 21:00:54 · 507 阅读 · 0 评论 -
Android大图片裁剪终极解决方案(上:原理分析)
http://blog.youkuaiyun.com/floodingfire/article/details/8144604 约几个月前,我正为公司的APP在Android手机上实现拍照截图而烦恼不已。 上网搜索,确实有不少的例子,大多都是抄来抄去,而且水平多半处于demo的样子,可以用来讲解知识点,但是一碰到实际项目,就漏洞百出。 当时我用大众化的解决转载 2016-08-24 20:58:12 · 363 阅读 · 0 评论 -
Android开发之Intent.Action
本文介绍Android中Intent的各种常见作用。1 Intent.ACTION_MAINString: android.intent.action.MAIN标识Activity为一个程序的开始。比较常用。Input:nothingOutput:nothing activity android:name=".M原创 2016-08-24 20:44:29 · 258 阅读 · 0 评论 -
解决ScrollView下嵌套ListView、GridView中内容显示不全的问题
1.使用网上用的动态改变listview高度的方法,该方法只适用于item布局是LinearLayout布局的情况,不能是其他的,因为其他的Layout(如RelativeLayout)没有重写onMeasure(),所以会在onMeasure()时抛出异常。所以使用限制较大。2 我就使用 重写ListView、gridView的方法,重写ListView,GridView的代码是相同的,重写原创 2016-06-07 10:53:01 · 473 阅读 · 0 评论 -
ListView 几个重要属性
第一是stackFromBottom属性,这只该属性之后你做好的列表就会显示你列表的最下面,值为true和falseandroid:stackFromBottom="true" 第二是transciptMode属性,需要用ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内。通过设置的控原创 2016-05-16 16:45:19 · 292 阅读 · 0 评论 -
使用AsyncTask 加载网络图片
public class ImageTest extends Activity { private ImageView imageView; private ProgressBar progressBar; private static String URL = ""; @Override protected void onCreate(Bundle sa原创 2016-05-18 16:08:13 · 368 阅读 · 0 评论 -
安卓 生成随机验证码
Android 动态生成随机验证码:效果图: XML:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"原创 2016-11-18 11:32:23 · 714 阅读 · 1 评论 -
Toolbar的使用
Toolbar元素上面的效果图中,只显示了App的名称,但是Toolbar可以包含以下元素:导航按钮应用的Logo标题和子标题若干个自定义View动作菜单好的,接下来我们就让它们全部显示出来。显示导航按钮、应用的Logo、标题和子标题。// 显示应用的LogogetSupportActionBar().setDisplayShowHomeEnabled原创 2017-03-10 17:11:28 · 363 阅读 · 0 评论 -
NoSuchMethodError: org.apache.commons.codec.binary.Hex.encodeHexString
在Android项目中使用到了org.apache.commons.codec.jar包下的Hex.encodeHexString(byte[] input)方法进行加密。结果编译通过,运行时总是报java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Hex.encodeHexString([B)Ljava/lang/Stri原创 2017-07-20 11:57:48 · 7134 阅读 · 0 评论 -
Android Studio如何取消与SVN的关联
在使用SVN过程中可能有时因为一些原因,不想再使用SVN了,我们想取消与SVN的关联,让Android项目恢复到原始状态,不想有哪些花花绿绿的颜色了,怎么办呢,操作起来很简单把Android Studio切换到Project模式,有个.idea文件夹,在该文件夹下找到vcs.xml文件,打开该文件,把里面的内容替换成如下代码即可.[java] view plai原创 2017-06-08 14:49:23 · 1054 阅读 · 0 评论