Android
文章平均质量分 73
easion_zms
这个作者很懒,什么都没留下…
展开
-
Android日志服务例子,将日志记录在文件中并每天生成一个日志文件
在调试的时候一般都是在logcat中看日志的信息,以便找出BUG和调试信息,但是如果在真机上的话不可能一直连接电脑查看日志,所以生成日志文件并保存,是一个比较普遍的需求,下面就是最近实现的一个例子。欢迎大家讨论并给出别的思路。 import java.io.BufferedReader;import java.io.File;import java.io.FileI...原创 2011-03-31 11:11:01 · 351 阅读 · 1 评论 -
HTTPS和Android
使用了非对称加密和对称加密非对称加密的好处是私钥和公钥分离,公钥加密,私钥解密,向外只暴露公钥。所以即使得到了公钥也无法解密。缺点是效率低下;对称加密的好处是公钥私钥一致,效率高;缺点是不安全,公钥暴露后信息就可以被解密了。HTTPS会使用三个随机数,随机数是为了保证加密的随机性。前两个随机数分别由客户端和服务端生成,最后一个随机数由客户端生成,然后使用客户端获取的公钥加密生成原创 2016-03-30 17:40:42 · 802 阅读 · 0 评论 -
tinker集成
原创 2017-03-29 10:03:48 · 214 阅读 · 0 评论 -
微信APP支付,errCode=-1的问题
最近整合微信APP支付,深深的微信伤害了。首先WXPayEntryActivity类必须放在package+wxapi包中,比如我的应用PackageName=com.testwx.pay,那么WXPayEntryActivity的路径就是com.testwx.pay.wxapi.WXPayEntryActivity。这个在开发文档中讲解的并不明确,如果位置放错了,根本就收不到支付的结果。原创 2016-04-18 11:09:35 · 8287 阅读 · 1 评论 -
DataBinding 坑爹问题集
1.dataBinding数据绑定的时候,使用的是classpath “com.android.databinding:dataBinder:1.0-rc1”,出现错误Error:Failed to resolve: com.android.databinding:library:1.0-rc1 Open FileShow in Project Structure dialog E原创 2016-04-25 13:47:27 · 663 阅读 · 0 评论 -
Android targetSdkVersion 原理
前几天 Google 官方发布文章解析 compileSdkVersion、minSdkVersion 以及 targetSdkVersion 的含义,以及合理设置各个值的意义,原文 Picking your compileSdkVersion, minSdkVersion, and targetSdkVersion(后面简称 “原文”),还有翻译版。其中,compileSdkVers转载 2016-02-26 15:01:34 · 604 阅读 · 0 评论 -
Android Https相关完全解析 当OkHttp遇到Https
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/48129405; 本文出自:【张鸿洋的博客】一、概述其实这篇文章理论上不限于okhttp去访问自签名的网站,不过接上篇博文了,就叫这个了。首先要了解的事,okhttp默认情况下是支持https协议的网站的,比如https://www.baidu.com转载 2016-03-16 13:42:08 · 422 阅读 · 0 评论 -
Android开发艺术探索--第一章Acitivity的生命周期和启动模式
第一章1.1.1A跳到B:A.onPause-B.onCreate-B.onStart-B.onResume-A.onStop1.1.2 异常状态下的生命周期原创 2016-03-03 14:35:25 · 344 阅读 · 0 评论 -
NoClassDefFoundError when Espresso Tests are run
I've solved this problem adding to gradle the following code:configurations { androidTestCompile.exclude group: 'com.android.support', module: 'support-v4'}0down vote转载 2016-01-28 16:25:00 · 332 阅读 · 0 评论 -
Resolving conflicts between main and test APK
When instrumentation tests are run, both the main APK and test APK share the same classpath. Gradle build will fail if the main APK and the test APK use the same library (e.g. Guava) but in different翻译 2016-01-27 10:05:59 · 575 阅读 · 0 评论 -
在Android Studio中修改包名?ApplicationId 与 PackageName
在Android Studio中修改包名?ApplicationId 与 PackageName最近公司要做一个新项目,功能和现有的项目一致,只需要修改下APP名称和少许的资源图片即可。首先想到的方式就是修改项目包名称,即manifest中的package属性。package主要有两种作用:作为应用的唯一标识用来命名资源类 R所以如果改了package属性后资源类R对应的前缀也会被修改,这样一原创 2017-03-17 14:44:21 · 4241 阅读 · 0 评论 -
Physics-based Animation
导语: Physics-based动画基于物理定律,表现形式也更加真实。在我们日常生活中,我们自然的认为当一个动作触发时,我会伴随着一个物理过度。比如, 我们更容易接受一个变化的自然,连续的动画。 Physics-based动画如何工作 Physics-based动画使用力学三大运行定律来构建动画。当力平衡了动画就结束了。通过新加入的动画API动画可以做到更加自然,富有弹性。翻译 2017-04-28 10:26:57 · 570 阅读 · 0 评论 -
RxJava之SubscribeOn
默认情况下,Observable和应用于该Observable的所有操作链,会在subscribe()方法调用的同一个线程中被执行,通知监听者也是在该线程中被执行。其中Observable的执行是指,调用Observable的call方法,通知Observer是指调用Observer的onNext,onCompleted,onError。SubscribeOn操作符指示Observable翻译 2017-04-19 19:32:13 · 1004 阅读 · 0 评论 -
Android中加入悬浮窗
悬浮窗可以一直在前台显示一些信息,无论当前的Activity是哪个应用的。比如显示当前的上下行网速等 import android.app.Service;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import a...原创 2011-06-01 09:30:45 · 211 阅读 · 0 评论 -
ScrollView+EditText输入多个文字后不自动换行
ScrollView+EditText输入多个文字后不自动换行,经测试去掉inputType 属性后可以自动换行了。原创 2018-03-28 22:51:48 · 585 阅读 · 0 评论 -
应该了解的一些并发基础知识
原文链接http://blog.csdn.net/qq_17250009/article/details/79012528三个基础概念原子性。一个操作或者一系列骚操作,要么全部执行要么全部不执行。数据库中的“事物”就是个典型的院子操作。可见性。当一个线程修改了共享属性的值,其它线程能立刻看到共享属性值的更改。举个例子:转载 2018-01-24 16:03:56 · 238 阅读 · 0 评论 -
Android Architecture Components 下载依赖失败
最近想要 研究####Android Architecture Components 奈何本地的gradle一直拉不下源码,尝试切换到云服务器编译,依然落不下代码 提示错误FAILURE: Build failed with an exception.* What went wrong:A problem occurred configuring project ':app'.> Co转载 2017-11-20 18:02:03 · 458 阅读 · 0 评论 -
Android -- 贝塞尔曲线公式的推导和简单使用
原文链接:http://www.cnblogs.com/wjtaigwh/p/6647114.html1,最近看了几个不错的自定义view,发现里面都会涉及到贝塞尔曲线知识,深刻的了解到贝塞尔曲线是进阶自定义view的一座大山,so,今天先和大家来了解了解。2,贝塞尔曲线作用十分广泛,简单举几个的栗子:12345转载 2017-08-31 14:34:51 · 503 阅读 · 0 评论 -
WebView.setVisibility(View.VISIBLE)后自动滚动问题
当WebView嵌套在ScrollView或者RecyclerView中,在切换WebView的显示时整个的布局会自动的滚动,因为此次默认的WebView会获取焦点,所以RecyclerView会滚到WebView最上方,怎样避免该问题呢?在WebView的根布局加入android:descendantFocusability="blocksDescendants"原创 2017-07-31 19:09:35 · 912 阅读 · 0 评论 -
Android官方应用程序架构设置指南--Architecture Components
Handling Lifecycles使用 android.arch.lifecycle 包提供的接口和类可以创建感知生命周期组件,这类组件可以根据当前Activity和Fragment的生命周期自动的调整行为。Android框架中的大部分系统组件都是有生命周期限制的。生命周期由操作系统或者运行在用户进程中的框架代码来进行管理。这是Android系统的核心应用程序必须遵守。如果不这样就会引起内存泄露翻译 2017-05-26 10:33:03 · 448 阅读 · 0 评论 -
buildToolsVersion,platform-tools,com.android.support 作用
buildToolsVersion 是你构建工具的版本,其中包括了打包工具aapt、dx等等 路径为sdk\build-toolsSdk platform-tools 包含开发app的平台依赖的开发和调试工具,包括 adb、fastboot等 路径为sdk\toolscom.android.support 我们都知道Android一些SDK比较分裂,为此google官方提供了And原创 2017-05-16 10:06:54 · 319 阅读 · 0 评论 -
Animation and Graphics
1.概述 Android为UI元素的动画和自定义2D以及3D图形提供了多种功能强大的API。 下面的章节大概地描述了这些API和系统的可用功能,依此来帮助你选择最合适的途径。动画Android系统提供了两种动画系统:属性动画(Property Animation Android3.0引入)和视图动画(View Animation补间动画)。这两种动画翻译 2017-05-11 14:11:30 · 300 阅读 · 0 评论 -
Android客户端中权限的控制
在客户端产品中有一个常见的场景,游客身份可以浏览,当进入需要登录的界面A时,弹出登录框,用户输入用户名密码,客户端跳进界面A。简单的实现方案是,在点击按钮上实现当前用户身份的判断,如果用户未登录时,跳到登录界面,否则进入目标界面。但是当越来越多的界面都需要做验证时,这种方案就变得很难维护。怎样通过不侵入当前代码的方式实现身份的过滤呢?首先,既然是基础功能,肯定要在B原创 2016-01-21 13:36:51 · 492 阅读 · 0 评论 -
自定义ViewGroup之margin和padding
都知道 android:layout_margin指该控件距离边父控件的边距,android:padding指该控件内部内容,如文本距离该控件的边距。对于到自定义View 中是如何处理padding和margin?在onDraw时使用padding来设置绘制内容和画布的距离在onLayout中使用margin来控制子view间的间距原创 2015-12-14 16:03:40 · 999 阅读 · 0 评论 -
Android开发之蓝牙
大致的流程和主要的类介绍见脑图:http://naotu.baidu.com/viewshare.html?shareId=aw53jb3raigw原创 2015-06-08 16:08:04 · 404 阅读 · 0 评论 -
Android中Handler引起的内存泄露
在Android常用编程中,Handler在进行异步操作并处理返回结果时经常被使用。通常我们的代码会这样实现。123456789public class SampleActivity extends Activity { private final Handler mLeakyHandler = new Handler() {转载 2015-06-16 14:41:25 · 284 阅读 · 0 评论 -
戏说View的绘制流程
噼里啪啦!噼里啪啦!老张今年收成不错,玉米,麦子收了仓溢库满;日子过得红火不说,几个儿子也比较争气工作没几年就都带了个女朋友回家;没办法儿子大了房子住不下了,必须重新的盖房不是;咱老百姓不就图个儿孙满堂嘛,盖房子立即提上了老两口的议事日程;老张量了下前年新分的宅基地:2560x1440;为了体现民主老张组织几个儿子开了个会,让大家自己根据需要自主的确定房间的面积;每个儿子拿原创 2015-03-18 11:05:24 · 490 阅读 · 0 评论 -
RecyclerView中实现addHeaderView,addFooterView功能
RecyclerView作为ListView的替代者有着较好的性能提升,但是有些ListVIew的常用功能却没有提供比如addHeaderView,addFooterView;作为替代方案,可以通过自定义的Adapter来实现addHeaderView,addFooterView功能,代码如下:public class HeaderAdapter extends RecyclerView.原创 2015-03-06 16:09:11 · 9618 阅读 · 0 评论 -
Android 性能分析案例
Android 系统的一个工程师(Romain Guy)针对Falcon Pro 应用,撰写了一个Android性能分析的文章。该文章介绍了如何分析一个应用哪里出现了性能瓶颈,导致该应用使用起来不流畅。找到原因、并修复问题。即使没有应用源码也能分析出问题大概根源。需要的工具工具很简单,只需要Android 4.2 SDK即可聊聊性能Android 4.1 的Proje转载 2015-03-06 13:29:54 · 839 阅读 · 0 评论 -
【译】Activitys, Threads和 内存泄露
Android编程中一个共同的困难就是协调Activity的生命周期和长时间运行的任务(task),并且要避免可能的内存泄露。思考下面Activity的代码,在它启动的时候开启一个线程并循环执行任务。/** * 一个展示线程如何在配置变化中存活下来的例子(配置变化会导致创 * 建线程的Activity被销毁)。代码中的Activity泄露了,因为线程被实 * 例为一个匿名类实例,它隐式地转载 2015-03-01 15:34:57 · 440 阅读 · 0 评论 -
访问高于minSdk版本的API
所有的Android API调用都会被扫描,如果某些调用不被所有的Version(根据minSdk声明决定)支持的话Lint就会给出警告。如果你确实需要使用该API,并且也不需要对低版本提供支持,那么就可以适当提高build.gradle或者AndroidManifest.xml设置minSdkVersion如果你能够确定该API仅仅会在提供支持的版本上被调用,就可以通过 @Targe翻译 2015-01-29 15:22:46 · 851 阅读 · 0 评论 -
使用Scenes和Transitions执行动画 -- Animating Views Using Scenes and Transitions
当用户通过键盘输入或者触发其他事件时界面需要做出变化。比如,某个Activity包含一个搜索框,当用户输入数据并提交的时候搜索框需要隐藏同时搜索的结果也跟着显示出来。在这种情况下要做出连续的视觉效果,你可以通过在不同的View层次结构中做出动画变换。这些动画对用户的动作做出反馈并且帮助用户学习应用是如何工作的。Android的transitions 框架让开发者可以方便的实现两个View层翻译 2015-05-25 10:48:27 · 1225 阅读 · 0 评论 -
原码 反码 补码
1的原码 0000 0001-1的原码 1000 0001(最开始的1为符号位)两者相加 1000 0010 不等于 0所以才有补码,有了补码就可以直接进行运算反码定义1.正数的反码与原码相同2.负数的反码,符号位为“1”保持不变,数值部分按位取反。EX:1的反码 0000 0001-1的反码 11原创 2015-06-10 18:00:27 · 757 阅读 · 0 评论 -
Android中使用WebView加载大图
在Android系统中,加载图片是一个充满挑战的工作,特别是超出屏幕很大的图片,要考虑适应屏幕,滚动等问题。而采用网页的方式可以很好的屏蔽这些问题,Webview+JS可以很好的控制屏幕的适配,也不会出现内存溢出的情况,来看看怎么实现的吧package com.msn.support.gallery;import android.annotation.TargetApi;import原创 2015-07-14 15:09:53 · 3400 阅读 · 0 评论 -
Android FragmentPagerAdapter vs FragmentStatePagerAdapter
To develop an app in Andorid with sliding views, a variation of PagerAdapterclass along with ViewPager class is used. Recently I wrote two tutorials about PagerAdapter classes, describing Android转载 2015-11-03 10:19:10 · 501 阅读 · 0 评论 -
ImageLoader(UIL)自定义HTTP Header信息
最近的项目,在加载图片时需要用户的身份信息,服务器端将用户的信息采用Session的方式保存。那怎样为将SessionId加入到ImageLoader请求的中去呢?1.首先自定义一个Downloaderpublic class ImageLoaderWithCookie extends BaseImageDownloader { public ImageLoaderWithCo原创 2015-12-10 22:18:35 · 2193 阅读 · 4 评论 -
ImageView宽度填满屏幕,高度自适应
在CSS中轻松设置width=100%就可以使得图片宽度充满屏幕,高度自适应,那么在Android里面怎样才能实现这种效果呢?首先试一下默认的ImageView的效果,布局文件如下activity_main_2.xml:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" and原创 2015-12-11 14:59:39 · 20443 阅读 · 3 评论 -
使用WebView时请使用RelativeLayout
当页面中一部分要WebView展示,一部分用原生态的空间展示时,请选择使用相对布局RelativeLayout。如果使用LinearLayout,网页会有不显示的问题https://issues.apache.org/jira/browse/CB-6681原创 2015-11-09 11:32:42 · 527 阅读 · 0 评论 -
使用newInstance()来实例化fragment
我最近读到StackOverflow上面关于Fragment实例化的一个问题,觉得挺有趣的。new MyFragment()和MyFragment.newInstance()之间的差别是什么?应该用哪个呢?好问题。答案就是这篇文章的题目所建议的,这是一种合理的设计。在这种情况下,newInstance()方法是一种“静态工厂方法",让我们在初始化和设置一个新的fragment的转载 2015-10-23 11:19:13 · 584 阅读 · 0 评论 -
客户端缓存机制
一.简介客户端缓存机制不仅可以减轻服务器端的压力,同时也能让用户在网速较慢的情况下获取良好的用户体验。所以构建一个优秀的APP,缓存是很重要的一个环节。二.简单方案客户端从服务器获取最新数据,假如是 20 条,然后缓存在本地,等再进入到这个界面,先加载并显示缓存里的数据,还是 20 条,再从服务端获取最新数据,覆盖缓存里的数据。当上滑加载更多的时候,在之前的获取最新原创 2015-07-14 15:00:37 · 3711 阅读 · 0 评论