
Android开发
文章平均质量分 70
和平world
合抱之木,生于毫末。九层之台,起于累土。千里之行,始于足下
展开
-
你会这几项,就会极大的提升Gradle编译速度
原文链接:http://tikitoo.github.io/2016/05/26/android-studio-gradle-build-run-faster/不过有些事情我们是不得不承认的,Android Studio 越升级越卡顿有木有,每次升级都说有黑科技,但每次都被当做小白鼠,最后只能降版本保智商,每次构建,都要刷个干货群,刷个知乎才能完成,有时候代码改了运行了没有生效有木有???原创 2016-08-26 12:44:29 · 7942 阅读 · 3 评论 -
Tint Drawable为图标着色
原文链接:http://www.race604.com/tint-drawable/其实在 Android Support V4 的包中提供了 DrawableCompat 类,我们很容易写出如下的辅助方法来实现 Drawable 的着色,如下:public static Drawable tintDrawable(Drawable drawable, ColorStateList原创 2016-07-25 15:26:02 · 2709 阅读 · 2 评论 -
5.0新特性转场动画的实现
本篇主要解决的问题是:5.0转场动画的实现,用Picasso进行网络图片的加载。用到了SnackBar、AppBarLayout结合CollapsingToolbarLayout进行滑动的ToolBar设计、NestedScrollView滑动控件更好的解决滑动过程中出现的各种问题。转场动画主要用到的方法就是下面 public static void navigate(AppCo原创 2016-07-13 17:48:13 · 666 阅读 · 0 评论 -
使用Jsoup解析HTML页面
Jsoup是通过解析网站网页,结合标签,进而获取想要的内容。通过继承Asynctask,通过Jsoup解析标签,将标签内容显示出来。用法很简单。class LoadHtml extends AsyncTask { Document doc; URLImageParser imageParser = new URLImageParser(); @Override pro原创 2016-06-29 19:43:26 · 775 阅读 · 3 评论 -
400、500等各种返回码所代表的含义
在网站日志中,我们经常会看到很多返回的http代码,如201、304、404、500等等。可是这些具体的返回的HTTP代码究竟什么含义呢,在此做一下知识普及吧,记不住不要紧,到时候看看就行了,但最主要的几个还要要清楚的。 一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务器超时 下面提供 HTTP 状转载 2016-06-13 18:03:54 · 8893 阅读 · 2 评论 -
Popupwindow显示
在弹出PopupWindow的时候 在 showAtLocation(,,)第一个参数 要求 是 parentView。他是这样说的a parent view to get the getWindowToken() token from意思 就是 改view必须能够获得 windowToken,其实只要是该窗体上的一个控件就可以。在安卓创建界面的时候 ,系统底层都是依附于w原创 2016-06-12 14:07:23 · 665 阅读 · 0 评论 -
解决单个DEX文件方法数超过65536的解决方案
决定使用Google官方的multiDex解决。1.修改gradle脚本来产生多dex。2.修改manifest 使用MulitDexApplication。步骤1.在gradle脚本里写上:在gradle文件中配置完就可以进行顺利编译了android { compileSdkVersion 21 buildToolsVersion "21.1.0"原创 2016-06-06 15:13:15 · 1721 阅读 · 2 评论 -
SignalR(ASP.NET)实现推送功能
在 Asp.NET MVC 中使用 SignalR 实现推送功能罗朝辉 ( http://blog.youkuaiyun.com/kesalin )CC许可,转载请注明出处一,简介Signal 是微软支持的一个运行在 Dot NET 平台上的 html websocket 框架。它出现的主要目的是实现服务器主动推送(Push)消息到客户端页面,这样客户端就不必重新发送请转载 2016-05-23 14:05:43 · 7049 阅读 · 2 评论 -
BitMap的recycle问题
虽然Android有自己的垃圾回收机制,对于是不是要我们自己调用recycle,还的看情况而定。如果只是使用少量的几张图片,回收与否关系不大。可是若有大量bitmap需要垃圾回收处理,那必然垃圾回收需要做的次数就更多也发生地更频繁,会对系统资源造成负荷。所以,这个时候还是自己试用recycle来释放的比较好。 如何去使用recycle()方法和何时试用recycle()都是值得考虑的转载 2016-06-04 11:24:35 · 722 阅读 · 0 评论 -
Espresso:快速的Android UI自动化测试
在我和很多Android开发者聊天的时候,我注意到他们在开发的过程中并不注重测试这一环节,原因是他们认为Android测试太难实现,或者难以集成到现有的工程中等等。但是实际上写一个 Espresso并不是一件很难的事情,而且它能够非常方便地集成到你的工程之中。容易实现Espresso测试是非常容易实现的,它由三部分组成:ViewMachers:寻找用来测试的View转载 2016-06-04 10:52:39 · 673 阅读 · 0 评论 -
如何在googleplay上发布应用?
下面链接地址是谷歌官方 上传应用市场的详细步骤。https://developer.android.com/distribute/googleplay/developer-console.html#merchant-account在注册账户前,需要先支付25美金(用visa卡支付)。所有应用“所有应用”部分让您能够快速浏览您的应用,您可以原创 2016-06-03 17:02:13 · 20835 阅读 · 0 评论 -
如何理解android中的Context?
Activity mActivity =new Activity()作为Android开发者,不知道你有没有思考过这个问题,Activity可以new吗?Android的应用程序开发采用JAVA语言,Activity本质上也是一个对象,那上面的写法有什么问题呢?估计很多人说不清道不明。Android程序不像Java程序一样,随便创建一个类,写个main()方法就能运行,Android应用模型是基于组转载 2016-05-21 11:55:33 · 660 阅读 · 2 评论 -
在Android中加入和使用Realm(速度更快,更先进加密性更好)
介绍如果你比较关心android开发的最新动态的话,那么你肯定会听说过Realm,Realm是一个轻量级的数据库,在Android开发中,它可以替代SQLite和ORM框架。和SQLite相比,Realm速度更快并且它有很多先进的特性,例如对JSON的支持,流畅的API,数据变化通知(观察者),加密支持… 所有的这一切都会让android开发者日子过得更潇洒(这里扯淡了,开发者日子转载 2016-05-20 15:28:00 · 2245 阅读 · 1 评论 -
MpAndroidChart强大的图表功能
核心特征8 个不同的图表类型在两个轴上进行缩放 ( touch-gesture, axes separately or pinch-zoom)Dragging / Panning (with touch-gesture)结合图表进行显示 (line-, bar-, scatter-, candle-data)双轴或独轴显示自定义 坐标轴显示 (both x- and y-轴)高亮属转载 2016-05-20 11:52:04 · 1090 阅读 · 1 评论 -
SmoothProgressBar 水平进度条
GithubDemo地址:https://github.com/castorflex/SmoothProgressBar效果图如下: gradle上添加下面这段代码dependencies { // of course, do not write x.x.x but the version number compil原创 2016-05-20 11:18:20 · 3018 阅读 · 2 评论 -
FancyCoverFlow(GalleryView)
先看实现效果图:这是Github上的一个开源库,虽然没有对应的AndroidStudio版本(通过 在gradle添加一句话就引入到项目中),但是可以通过import project通过依赖的方式添加到项目,完美实现效果。导入依赖就不说了,梳理一下导入项目之后的过程在布局中添加FancyCoverFlow的view <at.technikum.mti.fancycoverflo原创 2016-05-20 10:19:50 · 734 阅读 · 1 评论 -
调试APP LOGCAT提示 Debugger is no longer active
问题描述:有时候,用 Android Studio调试APP的时候,有时候,界面会一直卡在那里,然后,不能进行调试。或者点击运行的时候,程序明明运行起来了,但是APP不自主启动起来,还需要手动点击APP才能运行起来。仔细看LOGCAT会输出一句话: art: Debugger is no longer active所有的问题,其实原创 2016-06-17 15:18:03 · 13176 阅读 · 0 评论 -
让你的程序实现MaterialDesign风格
原文链接:http://android-developers.blogspot.sg/2014/10/implementing-material-design-in-your.html材料设计 是一个全面的方法来可视化、交互和运动设计的多屏幕的世界。 Android 5.0棒棒糖和更新的支持库帮助您创建ui。 这里有一个破旧的一些材料设计和api的主要元素和小部件,您可以使用它们来实现翻译 2016-07-26 15:31:50 · 1143 阅读 · 2 评论 -
安卓开发问题之 Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication
API 21 之前的设备调试,开启Instant run,有可能报这个错,21之后的设备就不会有了,,我这边实践的,应该还是Instant Run 不稳定所以把instant run 功能取消后在发布测试包就可以。这个问题出现在程序 Launcher3 运行中,系统端需要我这里修改 Launcher3 的一些东西,修改了给他,出现如下错误:--------- beginning原创 2016-08-30 17:04:21 · 2215 阅读 · 7 评论 -
使用HTTPS与SSL来保证安全性
原文链接:https://developer.android.com/training/articles/security-ssl.htmlSSL,安全套接层(TSL),是一个常见的用来加密客户端和服务器通信的模块。 但是应用程序错误地使用SSL可能会导致应用程序的数据在网络中被恶意攻击者拦截。为了确保这种情况不在我们的应用中发生,这篇文章主要说明使用网络安全协议常见的陷阱和使用Public-翻译 2016-08-02 11:26:54 · 6187 阅读 · 5 评论 -
使用GreenDao对数据库进行操作
在gradle中进行如下配置buildscript { repositories { mavenCentral() } dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0' }}apply plugin: 'org.greenrobo原创 2016-08-02 10:35:04 · 967 阅读 · 4 评论 -
解决软键盘遮挡按钮
原文链接:http://www.jianshu.com/p/49efa382352a#前言比如在进行登录的操作中,用户输入完密码之后,肯定是想直接点击登录按钮的。返回键隐藏软键盘这样的体验肯定很糟糕,程序员,遇到问题解决问题。实现1xmlScrollView android:id="@+id/scrollview" android转载 2016-07-21 16:13:43 · 708 阅读 · 1 评论 -
Android应用端秒开优化体验
原文链接:http://zhengxiaoyong.me/2016/07/18/Android%E7%AB%AF%E5%BA%94%E7%94%A8%E7%A7%92%E5%BC%80%E4%BC%98%E5%8C%96%E4%BD%93%E9%AA%8C/前言最近部门内抛出了一个问题,应用启动很慢、卡图标?主要表现在中低端机型中。究其这个问题,由于对性能优化比较感兴趣,借了个低端转载 2016-07-21 15:46:32 · 720 阅读 · 1 评论 -
Android定位的实现
原文链接地址:http://blog.youkuaiyun.com/limb99/article/details/8765584/基于android的定位无非就两种:network、gps。两者各有优劣。Network:定位快,准确度低,受环境影响小。GPS:定位慢,准确度高,受环境影响大。本文要解决的问题:1. locationManager原创 2016-07-21 14:24:32 · 571 阅读 · 1 评论 -
下一代Android打包工具,100个渠道包只需要10秒钟
项目介绍packer-ng-plugin 是下一代Android渠道打包工具Gradle插件,支持极速打包,100个渠道包只需要10秒钟,速度是 gradle-packer-plugin 的300倍以上,可方便的用于CI系统集成,支持自定义输出目录和最终APK文件名,依赖包:com.mcxiaoke.gradle:packer-ng:1.0.5 简短名:packer,可以在项目的 buil原创 2016-07-20 17:00:30 · 2475 阅读 · 1 评论 -
使用NavigationView 进行导航栏的设计
Navigation View抽屉导航是app识别度与内部导航的关键,保持这里设计上的一致性对app的可用性至关重要,尤其是对于第一次使用的用户。 NavigationView 通过提供抽屉导航所需的框架让实现更简单,同时它还能够直接通过菜单资源文件直接生成导航元素。把NavigationView作为DrawerLayout的内容视图来使用,比如下面原创 2016-07-20 14:50:05 · 1513 阅读 · 1 评论 -
使用Picasso进行网络图片的加载
picasso是Square公司开源的一个Android图形缓存库,地址http://square.github.io/picasso/,可以实现图片下载和缓存功能。仅仅只需要一行代码就能完全实现图片的异步加载:1Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").in原创 2016-07-20 10:36:51 · 1960 阅读 · 0 评论 -
Android事件机制ScrollView,ViewPager
原文链接:http://www.jianshu.com/p/a2185e4b1b53#当手指触摸到屏幕时,系统就会调用相应View的onTouchEvent,并传入一系列的action。onTouchEvent的传递当有多个层级的View时,在父层级允许的情况下,这个action会一直向下传递直到遇到最深层的View。所以touch事件最先调用的是最底层View的onTouchEv转载 2016-06-23 18:20:28 · 719 阅读 · 1 评论 -
ContentProvider 和ContentResolver内容提供者和内容解析者
内容提供程序管理对中央数据存储库的访问。提供程序是 Android 应用的一部分,通常提供自己的 UI 来使用数据。 但是,内容提供程序主要旨在供其他应用使用,这些应用使用提供程序客户端对象来访问提供程序。 提供程序与提供程序客户端共同提供一致的标准数据界面,该界面还可处理跨进程通信并保护数据访问的安全性。本主题介绍了以下基础知识:内容提供程序的工作方式。用于从内容提供程序检索数据翻译 2016-07-29 17:46:34 · 2552 阅读 · 1 评论 -
如何在APP中集成Google账户登录
下图是用谷歌账户的登录流程图:如果在APP中使用Google账户进行登录。步骤一:GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestScopes(new Scope(Scopes.DRIVE_APPFOL原创 2016-07-19 17:39:36 · 6426 阅读 · 1 评论 -
Vector Drawable(矢量图形)和黑夜白昼主题的设置
矢量图先创建一个Vector Drawable<vector xmlns:android="http://schemas.android.com/apk/res/android" android:viewportWidth="500" android:viewportHeight="500" android:width="500px" android:原创 2016-07-19 15:48:33 · 1012 阅读 · 1 评论 -
使用RxPermission框架对android6.0权限进行检测
可前往Github上进行查看相关DEMOhttps://github.com/tbruyelle/RxPermissions如果想用RxPermission,minSdkVersion 必须大于等于9.在gradle中添加如下代码repositories { jcenter() // If not already there}dependencies {原创 2016-07-29 11:17:22 · 6459 阅读 · 2 评论 -
ViewPager实现Banner图的展示
先是自定义一个ViewPagerpublic class ScrollerViewPager extends ViewPager implements OnGestureListener{ public static final int DEFAULT_INTERVAL = 5000; public static final int原创 2016-06-22 18:37:28 · 782 阅读 · 2 评论 -
打开相机裁剪默认裁剪功能
有时候相机默认是没有对图片进行裁剪的,不像IOS开发者 直接代码中配置一句话,就可以对图片 进行裁剪 放大缩小功能。Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(uri, "image/*"); intent.putExtr原创 2016-05-09 14:19:00 · 1292 阅读 · 0 评论 -
android屏幕适配
我们在android开发过程中,经常会遇到屏幕适配相关的问题。屏幕适配有的产品比较完善从小屏幕手机到主流的大屏幕手机都进行适配,但是现在80%以上的人用的是大屏幕的手机,所以我们这个只是适配了*1920*1080*和*1280*720*这两部手机。美工也只是切了这两套图。自己梳理一下屏幕适配的流程。一般一个布局里面的宽高都会写到dimens文件夹里面,为不同的尺寸手机建立多套dimens文件,然后原创 2016-04-23 16:14:34 · 412 阅读 · 0 评论 -
ListView分割线,RecycleView分割线
Recycleview分割线需要自己定义,默认是没有的。代码如下package com.ipd.east.eastapplication.adapter;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android原创 2016-05-11 09:41:01 · 2786 阅读 · 0 评论 -
Android Studio2.0搭建NDK环境
现在使用Ndk开发的场景还蛮多,游戏引擎、音视频开发等都能涉及到,以前的工程大部分都是Eclipse的工程目录,但是App开发现在大部分都是在AndroidStudio开发工具中进行的,那就有个问题了?怎么在As中搭建Ndk的环境呢。这就是本篇文章所要解答的,并且会创建一个小例子,编译成.so文件,且在项目中使用。Come on….在没具体动手之前我们想一想怎么实现比较好吧,假如我们新建一转载 2016-05-24 10:28:34 · 975 阅读 · 1 评论 -
BLE(BLuetooth Lower Energy)蓝牙
BLE获得权限为了在应用程序中使用蓝牙功能,你必须声明 使用蓝牙的权限 。 你需要这个权限执行任何蓝牙通信, 如请求连接,接受连接,传输数据。如果你想让你的应用程序启动或操作蓝牙设备被发现 设置,您也必须声明 BLUETOOTH_ADMIN 许可。 注意: 如果你使用 BLUETOOTH_ADMIN 权限,那么你必须 也有 蓝牙 权限。在您的应用程序清单文件声明翻译 2016-04-28 15:18:24 · 1128 阅读 · 0 评论 -
OpenGL ES
原文地址:http://developer.android.com/intl/zh-cn/guide/topics/graphics/opengl.htmlOpenGl 支持 2D和3D图形开源库。Android支持多个版本的OpenGL ES API:OpenGL ES 1.0和1.1 -这个API规范支持Android 1.0和更高版本。OpenGL ES 2.0翻译 2016-04-28 14:57:17 · 4170 阅读 · 0 评论 -
当手机横竖屏切换时,如何有效保证数据完整性
有些设备配置可能会在运行时发生变化(例如屏幕方向、键盘可用性及语言)。 发生这种变化时,Android 会销毁正在运行的 Activity(先后调用 onDestroy() 和 onCreate())。销毁行为旨在通过利用与新设备配置匹配的备用资源自动重新加载您的应用,来帮助它适应新配置。要妥善处理销毁行为,Activity 必须通过常规的Activity 生命周期恢复其以前的状态,在 A原创 2016-04-28 14:09:18 · 666 阅读 · 0 评论