- 博客(53)
- 收藏
- 关注
原创 如何用 Android Studio 导入开源项目以及常见错误的解决办法
本篇以Github上最热门的MaterialDesign库,MaterialDesignLibrary来介绍怎样使用Android Sudio导入开源项目的,如果你和我一样刚刚从Eclipse转到AS,那本篇文章非常适合你。如果不引入任何第三方库,不做自动化分渠道打包等操作,那可以在完全不了解Gradle的情况下进行Android项目的开发。但如果要想导入Github上的热门项目,必须首先
2017-06-26 13:15:35 2883
原创 Android单元测试(三):JUnit单元测试框架的使用
我们写单元测试,一般都会用到一个或多个单元测试框架,在这里,我们介绍一下JUnit4这个测试框架。这是Java界用的最广泛,也是最基础的一个框架,其他的很多框架,包括我们后面会看到的Robolectric,都是基于或兼容JUnit4的。然而首先要解决的问题是。。。为什么要使用单元测试框架或者换句话说,单元测试框架能够为我们做什么呢?从最基本的开始说起,假如我们有这样一个类:
2017-06-25 13:27:13 403
原创 Android单元测试(二):再来谈谈为什么
今天早上8点半坐到桌子前,打开电脑,看了几分钟体育新闻,做其他一些准备工作,到9点开始真正开始着手写这篇文章。于是开始google,找资料,打算列一大段冠冕堂皇的理由,来说明为什么要写单元测试,比如:对软件质量的提升方便重构节约时间提升代码设计。。。等等等等。然而我发现上面提到的几点,都不是很好解释。首先,我并没有具体的数据,来说明有了单元测试,我们的app crash率降了多少,
2017-06-25 13:14:40 431
原创 Android单元测试(一): 首先,从是什么开始
这是一系列安卓单元测试的文章,目测主要会cover以下的主题:什么是单元测试为什么要做单元测试JUnitMockitoRobolectricDagger2一个具体的app例子实践神秘的bonus什么是单元测试首先需要介绍一下什么是单元测试。很多人像我一样,本科并不是计算机专业出身的,如果在职的公司不要求做单元测试的话,可能对这个词并没有一个确切的概念。而即使是计算机专业出身,如果毕
2017-06-25 13:05:38 401
原创 通用PopupWindow,几行代码搞定PopupWindow弹窗(续)
一 、前言前面为了在项目中使用Popupwindow简单方便,自己简易封装了一个PopupWindow,可以在项目很方便的使用。还没有看过的可以去看一下文章介绍,通用PopupWindow,几行代码搞定PopupWindow弹窗,前段时间看到有留言说弹出PopupWindow同时使背景变暗这个功能没有,能不能加上?想着这是个比较常见的需求,因此把它加到了这个库中,本篇文章就简单谈谈怎么
2017-06-18 13:57:37 1870 1
原创 通用PopupWindow,几行代码搞定PopupWindow弹窗
我们都知道,Android 中的弹窗基本有两种,一种是AlertDialog,另一种是PopupWindow,AlertDialog的显示位置是固定的,PopWindow 的显示位置是我们可以设置和调整的,因此,像项目中的一些场景如:某个功能的提示说明、点击按钮在按钮上方或者下方弹出菜单、新功能弹窗引导等。由于这些弹窗的位置不固定,因此都可以用PopupWindow来做。最近项目中也用到了Popu
2017-06-18 13:54:17 3366
原创 RecyclerView Adapter 优雅封装,一个Adapter搞定所有列表
项目中,我们用得最多的元素就是列表了,在Android 中,实现列表用原生的RecyclerView就能满足需求,关于RecyclerView 的基础使用这里不做过多的介绍,网上有太多的博文介绍了。本篇文章将介绍自己封装的一个Adapter,帮你快速高效的添加一个列表(包括单 Item 列表和多item列表)。理念1, 构造一个通用的Adapter模版,避免每添加一个列表就要写一个
2017-06-18 13:50:55 914
原创 Android 底部导航栏(底部Tab)最佳实践
本文目录.png当开始一个新项目的时候,有一个很重要的步骤就是确定我们的APP首页框架,也就是用户从桌面点击APP 图标,进入APP 首页的时候展示给用户的框架,比如微信,展示了有四个Tab,分别对应不同的板块(微信、通讯录、发现、我),现在市面出了少部分的Material Design 风格的除外,大部分都是这样的一个框架,称之为底部导航栏,分为3-5个Tab不等。前段时间开始了一个
2017-06-18 13:47:46 22941 3
原创 Android Service和IntentService知识点详细总结
Service 对于广大的Android开发者来说算是耳熟能详了,作为Android的四大组件之一,在我们的开发中也起着重要的作用,在Android面试中,Service相关的问题也是面试官问得比较多的,当别人问你,Service 到底是什么的时候?你可能随口就能答得上来,Service是一个在后台执行长时间运行操作而不用提供用户界面的应用组件,可由其他组件启动,即使用户切换到其他应用程序,Ser
2017-06-18 13:44:12 674
原创 Android自定义View之 实现一个多功能的IndicatorView
CircleIndicatorView.pngIndicator (指示器) 可能大家都见的比较多了,在一个APP中,有很多场景都会用到Indicator,比如第一次安装APP 时的引导页,首页上面的广告Banner ,又或者是Tab下面的Indicator。Indicator 一般配合ViewPager 使用,它能很直观的反应出ViewPager 中一共有多少页,当前选中的是哪一页,
2017-06-18 13:41:41 469
原创 ViewPager系列之 打造一个通用的ViewPager
ViewPager是Android开发者比较常用的一个控件了,由于它允许数据页从左到右或者从右到左翻页,因此这种交互也备受设计师的青睐。在APP中的很多场景都用得到,比如第一次安装APP时的用户引导页、图片浏览时左右翻页、广告Banner页等等都会用到ViewPager。ViewPager 的使用和RecyclerView的使用方式很相似,熟悉RecyclerView的朋友都知道,我们要使用Rec
2017-06-18 13:39:20 235
原创 ViewPager系列之 仿魅族应用的广告BannerView
前言Banner广告位是APP 中的一个非常重要的位置,为什么呢?因为它能带来money。是一个公司很重要的一个营收点。像那种用户数基数特别大的产品,如facebook、twitter、QQ、微信等等。Banner广告位日营收估计得上千万美刀(猜的,不知道具体数据)。一个漂亮的Banner往往能够吸引用户的眼球,引导用户点击,从而提高转化率。遗憾的是现在的大多数产品的Banner都是千篇一
2017-06-18 13:37:05 1379
原创 ViewPager系列之-仿掌上英雄联盟皮肤浏览效果
封面图.png能有一个双休的周末,对于程序员来说,也算是一件幸福的事情吧。苦逼的加了一周的班,终于可以休息放松放松了。作为一个LOL爱好者,周末最开心的事当然就是约上几个小伙伴一起开黑了。一起超神、一起连跪,也算是周末的一大乐事。这几天英雄联盟搞活动,抽到一个安妮限定皮肤,可把我乐坏了,于是马上就登陆掌盟客户端查看皮肤。进入皮肤浏览界面之后,觉得这个皮肤浏览的效果还真不错,如下图:
2017-06-18 13:34:40 1071
转载 Retrofit + RxJava + OkHttp 让网络请求变的简单-封装篇
前面一篇文章讲了一下Retrofit+ RxJava 请求网络的一些基本用法,还没有看过的可以去看一下Retrofit + RxJava + OkHttp 让网络请求变的简单-基础篇,正如标题所说的,Retrofit+RxJava 是让我们的网络请求变得简单,代码精简。通过前一篇文章,我们感觉写一个请求还是有点麻烦,作为程序员,我们的目标就是“偷懒”,绝不重复搬砖。因此我们还需要封装一下,来简
2017-06-17 17:18:09 512
转载 Retrofit + RxJava + OkHttp 让网络请求变的简单-基础篇
最近因为手头上的工作做完了,比较闲,想着做一些优化。看到以前用的那一套网络框架添加一个请求比较麻烦,并且比较难用,所以想改造一下网络框架。现在Android 市面上很火的当然是 Retrofit+RxJava + OkHttp, 功能强大,简单易用,因此选用这套方案来改造网络库。本篇文章是对Retrofit 的基本使用方法做一些简单的介绍。后面会再写一篇 Retrofit + RxJava +
2017-06-17 17:15:08 611
转载 基于Retrofit、OkHttp、Gson封装通用网络框架
背景android开发过程中网络请求作为最重要的组成部分之一,然而对于大部分android开发者在网络请求上有太多疑惑,不知道如何去选型?通过原生的HttpClient、HttpUrlConnection封装?还是通过第三方框架再封装?笔者以为采用广泛被使用的第三方网络框架再封装为上策,因为这些网络框架如retrofit、okhttp、volley等是被全球android开发者维护着,无论
2017-06-17 17:12:36 468
转载 RxJava 与 Retrofit 结合的最佳实践
前言RxJava和Retrofit也火了一段时间了,不过最近一直在学习ReactNative和Node相关的姿势,一直没有时间研究这些新东西,最近有个项目准备写,打算先用Android写一个Demo出来,却发现Android的世界发生了天翻地覆的变化,EventBus和OKHttp啥的都不见了,RxJava和Retrofit是什么鬼?好吧,到Github上耐着性子看过了RxJava
2017-06-17 17:10:07 276
转载 Retrofit用法详解
一、简介Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,OkHttp现在已经得到Google官方认可,大量的app都采用OkHttp做网络请求,其源码详见OkHttp Github。本文全部是在Retrofit2.0+版本基础上论述,所用例子全部来自豆瓣Api首先先来看一个完整Get请求
2017-06-17 17:03:00 529
转载 给 Android 开发者的 RxJava 详解
前言我从去年开始使用 RxJava ,到现在一年多了。今年加入了 Flipboard 后,看到 Flipboard 的 Android 项目也在使用 RxJava ,并且使用的场景越来越多 。而最近这几个月,我也发现国内越来越多的人开始提及 RxJava 。有人说『RxJava 真是太好用了』,有人说『RxJava 真是太难用了』,另外更多的人表示:我真的百度了也谷歌了,但我还是想问: R
2017-06-17 16:37:43 522
原创 Android面试
和大多数的面经不同,我不是大牛,手头也没有3,4个 sp 的 offer 求比较,我只是一个非211,985的本科应届毕业生,想分享一下自己坎坷的求职历程,来给更多求职路上迷茫的应届生一些鼓励,特别是本科应届生。另外还要特别感谢北邮信安研二的赵翔,研三信安的吴博还有清华的金辉,虽然只是做了短短一两个月的同事,但是在之后一直尽其所能的帮助鼓励我。还有研三信安的胡相铎,非常感谢这位大神在技术学习上对我
2017-06-14 13:34:52 618 1
原创 快速上手 Kotlin 的 11 招
最近经常会收到一些 “用 Kotlin 怎么写” 的问题,作为有经验的程序员,我们已经掌握了一门或者多门语言,那么学 Kotlin 的时候就经常会有类似 “ ‘再见’用日语怎么说?”、“ ‘你好’ 用西班牙语怎么说?” 的问题,所以我决定把一些常用的语法对照列举出来,如果大家熟悉 Java,那么快速上手 Kotlin 会变得非常地容易。这篇文章主要是写给需要快速上手 Kotlin 的
2017-06-14 13:29:47 207
原创 Kotlin开发语言学习(5) 函数与闭包
函数与闭包的特性可以算是 Kotlin 语言最大的特性了。5.1 函数即使 Kotlin 是一门面向对象的编程语言,它也是有函数的概念的——而不像 Java 那样,仅仅有“方法”。回顾一下前面第二章讲述的函数声明语法:fun say(str: String): String { return str}函数使用关键字fun声明,如下代码创建了一个名为 say()
2017-06-14 13:25:34 226
原创 Kotlin开发语言学习(4) 类特性
前面三章的内容是写给希望快速了解 Kotlin 语言的大忙人的。而从本章开始,才会真正讲述 Kotlin 语言的神奇之处。4.5 类的扩展在 Java 开发的时候,经常会写一大堆的 Utils 类,甚至经常写一些common包,比如著名的 apache-commons系列、Guava等等。如果每个类在想要用这些工具类的时候,他们自己就已经具备了这些工具方法多好,Kotlin
2017-06-14 13:24:19 286
原创 Kotlin开发语言学习(3)Kotlin与Java混编
虽然 Kotlin 的开发很方便,但当你与他人协作时,总会碰到 Java 与 Kotlin 代码共存的代码项目。本章就教你如何优雅的实现 Kotlin 与 Java 混合编程。3.1 直接转换3.1.1 将 Java 转换为 Kotlin如果你之前使用 Java 语言而没有 Kotlin 开发经验,不用担心,Intellij IDEA 会帮你一键转换,将 Java 代码
2017-06-14 13:22:43 4267
原创 Kotlin开发语言学习(2)基本语法
Kotlin 程序是什么样子的?很有可能你觉得 Kotlin 语言有点古怪,充满了var field: String这样的语法。然而读完本章后,你将不再对这些语法感到陌生,甚至很可能喜欢上它们。2.1 变量让我们来看一个很简单的程序。fun main(args: Array) { var quantity = 5 val price: Double = 20.3
2017-06-14 13:21:12 258
原创 Kotlin开发语言学习(1) kotlin初探与相关配置
欢迎阅读本书!Kotlin 语言是一种新的静态类型编程语言,可运行于 JVM 环境同时也能用来开发 Android 应用。本章为学习和使用这一新兴的语言做准备,并讨论在一些常见开发环境中运行 Kotlin 程序的方法。1.1 Kotlin语言介绍Kotlin 是 JetBrains 在 2010 年推出的基于 JVM 的新编程语言。开发者称,设计它的目的是避免 Java 语言编程中
2017-06-14 13:16:12 477
原创 Kotlin学习途径
Google I/O 2017 首日 Keynote 刚刚落幕,其中 Google 宣布 Android 系统开发全面支持Kotlin 算是一个非常重磅的新闻。之前对kotlin不是很了解,所以这段时间专门去学习了解这么语言。最好的学习途径就是去kotlin官网去学习:1.kotlin官方中文翻译文档网址:https://www.kotlincn.net/docs/referenc
2017-06-14 12:52:31 418
原创 Android Studio 开发技巧集锦二
Android Studio 开发技巧集锦二行复制Mac OS: Command+DWindows & Linux: Ctrl+D这个快捷键的厉害之处在于它会复制当前行同时又不会影响系统的剪贴板。效果如下图: 扩大或者缩小选择范围Mac OS : alt+↑/↓Windows & Linux: (Ctrl+w)/(Ctrl+Shift+w)这个操
2017-05-31 19:19:24 228
原创 Android Studio开发技巧集锦一
Android Studio开发技巧集锦一关于Android Studio的键位映射Android Studio 提供了不同的键位映射(即快捷键和它对应的操作之间的映射),你可以在“Settings->Keymap”菜单里面查看当前所使用的键位映射。高亮所有相同变量OS X : Command+Shift+F7Windows Or Linux:Ctr
2017-05-31 19:18:03 201
原创 Android就业面试技巧系列-技术篇12 (消息推送)
Android就业面试技巧系列-技术篇(消息推送)关于消息推送 总结一:消息推送原理:消息推送 定义就是服务器主动发消息给客服端,消息推送最简单的方法就是使用第三方的,比如现在使用比较多的是极光推送,极光推送的技术原理是:移动无线网络长连接。免费的消息推送 : 建立服务器端和客服端的长连接消息推送的思路:1: Android push noti
2017-05-31 19:06:45 465
原创 Android就业面试技巧系列-技术篇11 (支付相关)
Android就业面试技巧系列-技术篇(支付相关)关于支付,相信很多同学都不陌生,而且这也是找工作面试官问的高频问题,这一篇文章主要就是向大家详细介绍一下支付的一些流程。支付难不难?> 不难,都是属于第三方的东西.难度不大支付安不安全?> 肯定是安全的.因为这些都是大公司的产品.都有自己的安全策略;做一个支付需要多久?项目评估时间和实际开发有出入的,一般是两
2017-05-31 19:05:45 872
原创 Android就业面试技巧系列-技术篇10 (图片OOM)
Android就业面试技巧系列-技术篇(图片OOM)图片显示我们需要根据需求去加载图片的大小。例如在列表中仅用于预览时加载缩略图。只有当用户点击具体条目想看详细信息的时候,这时另启动一个fragment/activity/对话框等等,去显示整个图片。图片像素Android中图片有四种属性,分别是: ALPHA_8:每个像素占用1byte内存
2017-05-31 19:04:49 244
原创 Android就业面试技巧系列-技术篇9 (AsyncTask和Handler区别)
Android就业面试技巧系列-技术篇(AsyncTask和Handler区别)AsyncTask实现的原理和使用的优缺点AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.使用的优点:简单,快捷过程可控
2017-05-31 19:03:40 240
原创 Android就业面试技巧系列-技术篇8 (Volley框架)
Android就业面试技巧系列-技术篇(Volley框架)Volley简介:比较流行的http开发库。也封装这个线程。1.使用底层代码来写http请求 代码量比较大。httpclient j2se httpURLConnection AscynHttpClient2.高频率http请求 优势在处理数据量比较小的频率高的请求。3.劣势 大文件的请求。大文件的上传
2017-05-31 19:02:39 627
原创 Android就业面试技巧系列-技术篇7 (ListView优化)
Android就业面试技巧系列-技术篇(ListView优化)UI优化:listview条目与条目之间的间隙的分割内容 : android:divider="@android :color/transparent"listview条目之间的间隙 : android:paddingTop="5.0dip"listview点中的颜色变化 : android:listSe
2017-05-31 19:01:48 246
原创 Android就业面试技巧系列-技术篇6 (Handler机制)
Android就业面试技巧系列-技术篇(Handler机制)带入Handler机制:Handler是线程间通讯的机制,Android中,网络访问、文件处理等耗时操作必须放到子线程中去执行,否则将会造成ANR异常。ANR异常:Application Not Response 应用程序无响应产生ANR异常的原因:在主线程执行了耗时操作,对Activity来说,主线程阻塞5秒将造
2017-05-31 19:00:41 208
原创 Android就业面试技巧系列-技术篇5 (WebView和JS交互)
Android就业面试技巧系列-技术篇(WebView和JS交互)WebView: 一个绝对布局容器,用来展示或渲染Web页面。这个类是你可以滚动自己的Web浏览器或在你的Activity中简单地显示一些在线内容的基础。它使用了WebKit渲染引擎来显示网页,包括向前和向后导航的方法(通过历史记录),放大和缩小,执行文本搜索等。WebView相关的几个类:
2017-05-31 18:59:23 325
原创 Android就业面试技巧系列-技术篇4(MVP)
Android就业面试技巧系列-技术篇(MVP)MVC(控制器Controller)- 负责转发请求,对请求进行处理。(视图View) - 界面设计人员进行图形界面设计。(模型Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。模型(Model) “数据模型”(Model)用于封装与应用程序的业务逻辑相关的数
2017-05-31 18:58:32 1157
原创 Android就业面试技巧系列-技术篇3(屏幕适配)
Android就业面试技巧系列-技术篇(屏幕适配)答题技巧屏幕适配是目前安卓开发大部分程序员都会遇到的问题,回答时候,面试官会直接问你对屏幕适配如何看待,此问题需要循序渐进,点滴从经验作答,最终阐述清楚原理。具体可分如下步骤:1、开发中遇到的机型以及分辨率2、开发中用到的屏幕适配方案,以及科学的屏幕适配共有几种3、根据自己经验,哪种适配适合什么场合使用4
2017-05-31 18:57:07 1136
原创 Android就业面试技巧系列-技术篇2(百度地图)
Android就业面试技巧系列-技术篇(地图)百度地图api里大概有30个类,api的链接是http://developer.baidu.com/map/ ,通过这个api可以轻松的获取百度服务和数据,构建功能丰富、交互性强的地图应用程序.这个api为我们开发者提供了本地搜索、路线规划、地图定位灯等数据的服务。要使用百度地图api,首先要申请它的API key,申请
2017-05-31 18:56:00 1115
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人