自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wenping的专栏

Talk is cheap, show me the code.

  • 博客(47)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android7.0 Messaging源码分析(5) - MMS类库篇

在《Android7.0 Messaging源码分析(2) - Application 创建篇》中介绍了在 application 创建过程中会初始化MMS类库,这篇文章对 MMS 类库做简要分析。  初始化代码如下:138 private static void initMmsLib(final Context context, final BugleGservices bugleGserv

2016-11-18 14:05:48 4003

原创 Android7.0 Messaging源码分析(4) - DataModel篇

DataModelImpl 类里主要有下面几个成员:ActionService // 提供ActionService接口,可以用于桩测试;BackgroundWorker // action service 和它的 workers 间的接口;DatabaseHelper // 操作本地数据库(bugle_db)SyncManager // 使用Telephony SmsProvider/Mm

2016-11-16 14:58:25 2657

原创 Android7.0 Messaging源码分析(3) - 缓存管理篇

在《Android7.0 Messaging源码分析(2) - Application 创建篇》中介绍了在 application 创建过程中会创建缓存管理类,这篇文章来做简要分析。   创建代码在FactoryImpl.java,77 public static Factory register(final Context applicationContext,78

2016-11-16 14:15:02 1890

原创 Android7.0 Messaging源码分析(2) - Application 创建篇

Messaging 源码位于 packages/apps/Messaging 目录下,application类名是BugleApplication,  在 onCreate 方法里做了两件事,   1 FactoryImpl.register(getApplicationContext(), this);   2 Thread.setDefaultUncaughtExceptionHan

2016-11-16 10:22:53 2804

原创 Android7.0 Messaging源码分析(1) - 基础知识篇

关于 Messaging 有以下概念要了解:   SMS   短信息服务(英语:Short Message Service,缩写为SMS),中国大陆称短信,香港称短讯, 台湾、新加坡称简讯,是移动电话服务的一种。有时也称为信息、短信息、文字信息,此服务亦有许多英语的俗称如“SMSes、text messages、messages或甚至于texts和txts”。短信服务最早是在GSM系统手机上引入

2016-11-16 10:07:02 3795

原创 Android7.0 Messaging源码分析(0) - 启动篇

最近在做Messaging相关的framework层移植工作,单看framework层对业务场景理解不深,所以决定研究一下app层。翻出了好友alexhilton四年前的Mms专题博客,看完唏嘘不已,四年前他就可以静下心来写十几篇专题博客,反观我,连篇像样的博客都写不出来,差距太大了。四年的时间Android已经升级了好几个大版本,代码肯定有很大的变化,所以我打算也整理一个专题,从一个Messagi

2016-11-15 18:18:47 2264

原创 Android studio插件开发实战(4)-CodeGenerator插件开发

上一篇文章分析了FindViewByMe插件的实现,这篇文章对它进行扩展,开发一款CodeGenerator插件。扩展点1:newActivityInstance  首先想到的一个扩展点是自动生成activity的newInstance方法,作用是启动一个页面同时传递参数,因为每次去构造Intent传值再从Intent里取值都高度模板化,每次手写很烦,完全可以用插件自动生成。   上一张效果图:

2016-02-24 14:20:03 2057

原创 Android Studio插件开发实战(3)-FindViewByMe插件分析

这里写链接内容  如果你对用注解的方式初始化View不感冒,今天介绍的这款插件一定会让你喜欢。今天介绍一款自动生成findViewById代码的插件。资源下载  原插件可以在这里下载,代码在这里。怎么做到的  扩展了右键菜单,在xml文件里右键选择FindViewByMe后做了下面的操作:找出该布局及子布局所有控件的类型、id;根据id格式化成变量名(去掉_,采用驼峰式命名);可以选择在变量名

2016-01-19 16:26:20 4032

翻译 Android6.0之运行时权限

Android 6.0来了  Android 6.0 Marshmallow新增了运行时权限特性,还没有适配6.0系统的应用可能有点猝不及防了。这不用户反馈新买的最贵的华为手机打不开我们的应用。报的是权限异常,那就来看看android6.0新的权限特性到底是什么。墙外的官方文档  自从developer.android.com无法访问后就很少看android官方文档了。但是网上的博文毕竟是别人消化过

2016-01-13 19:46:29 1683

原创 奇巧淫技之Excel汉字转拼音

什么时候需要汉字转拼音  目前在写邮件的时候构造收件人列表发现用excel还是比较方便。汉字转拼音  请参考这篇文章WPS启用宏  如果你使用的是office默认是有宏功能的,如果用的是wps请安装宏插件,参考这篇文章。构造邮件列表  构造单个邮件地址:   我们定义的汉字转拼音的函数名是getPy,如果要构造的都是163的邮箱,可以使用下面的表达式,=CONCATENATE(SUBSTITUTE

2016-01-03 17:06:59 2272

原创 Android事件处理机制实例讲解

在android开发技术周报看到了小红书引导页的开源实现,觉得做的很不错,在这里分析一下它的实现,共同学习~效果页面组成Touch事件传递  如果还不理解touch事件的分派、拦截、处理机制,强烈推荐下面的文章:   Android TouchEvent事件传递机制   Android:30分钟弄明白Touch事件分发机制 要实现的需求:Req-1 ChildViewPager#ima

2015-12-28 16:24:02 721

原创 Android支持HTML标签

今天发现项目里消息列表显示异常,多了很多\r和空行,调试发现是因为TextView控件不支持div标签,于是决定使用WebView替代TextView。使用WebView显示内容  参考这篇文章使用WebViewwebView.loadData("<html><body>"+strIFrame+"</body></html>", "text/html", "utf-8");  遇到的第一个问题是xm

2015-12-12 19:51:49 1782 3

原创 android studio单元测试

android studio默认会在src目录下创建androidTest这个文件夹,显然它是做测试用的。今天用它做了一次单元测试,效果不错,把步骤记录下来。测试内容  CommonUtils类下的moneyFormat2方法,/** * 绝对值小于10000元返回元为单位的价格,大于等于10000返回万元为单位的价格 **/public static String moneyFormat2(

2015-12-12 19:26:47 755 1

原创 android studio 注释-代码模板

文件头部注释步骤请参考这里 我的模板如下: /** * @des: * @author: * @version: 3.3.2 * @date: ${DATE} ${HOUR}:${MINUTE} * @see {@link } */ 待优化:version可以自动读取当前版本号方法注释这个用的好能少些很多代码,可以自定义代码模板; 步骤参考这里 an

2015-11-30 16:29:01 3140

原创 Android Studio插件开发实战(2)-代码生成类插件开发

上一篇讲了Android Studio插件开发的准备工作  下面以android-parcelable-intellij-plugin为例介绍代码生成类插件开发。这个插件可以为你自动生成parcelable类的实现,包括构造方法、writeToParcel、describeContents等方法、CREATOR成员变量。 通过这个例子,你可以学到的代码生成方法如下:删除成员方法删除成员变量

2015-11-11 16:03:13 2602

原创 Android Studio插件开发实战(1)-准备

为什么要开发android studio插件  转到android studio平台已经有几周时间了,它对开发者的友好程度确实值得称赞。偶然看到了这个8个最优秀的 Android Studio 插件,于是开始关注插件,然后搜到了这个有什么好用的Android Studio的插件值得推荐?   插件可以提高我们的开发效率,比如代码生成类插件GsonFormat能根据json自动生成bean;编辑器颜

2015-11-10 14:49:16 1900

原创 好书推荐-《Head First设计模式》

图书信息  作者:Eric Freeman   中文版出版社:中国电力出版社推荐理由  这是我看过的最好的计算机类图书(别嫌弃我读书少,–>__–>),它有如下优点:   图文并茂、层层深入、生动有趣、从问题引出解决方案代入感强、每章的总结别出心裁、学习者与设计大师的对话深入浅出、读每一章都像在读一个故事……   本书一直在强调一件事情:针对接口编程,而不是针对实现编程。“针对接口编程”真正意

2015-09-13 23:41:03 933

原创 使用GenyMotion模拟器+抓包工具SRSniffer分析网络请求

换了新公司,第一个Get的技能是使用第三方模拟器GenyMotion和抓包工具SNSniffer分析网络请求。  模拟器  模拟器大家一开始学Android肯定就知道了,相信很多开发者在玩过一阵子模拟器后都换真机了,因为模拟器又慢又难用真没模拟器效率高。但是模拟器也是有用处的,比如模拟低电量、低内存等测试场景。曾经有位同事非常看好模拟器的市场价值,花费了很多心思利用模拟器跑测试用例,认为模拟器能

2015-08-30 16:19:13 5514

原创 记一次当面试官的经历

昨天不小心当了一把面试官,感觉比自己被面试还紧张(瀑布汗),但是总体来说还算应对沉稳,嘻嘻。 面试者三十多岁,四年Android开发经验,按照他的年龄我的感觉是应该应聘项目经理之类更高的职位,把这个疑问告诉了老大,老大说哪有这么多经理给他当啊,哈哈哈,年龄不代表水平。还有一点是四年换了四次工作,给人一种极不踏实的感觉。还有是懂ios开发,老大说最不喜欢这种什么都会的,都会都不精等于都不会啊。 首先自

2015-08-25 23:28:59 1439

原创 使用ObjectAnimator开发打开、关闭书本动画

动画效果动画效果-分享链接 (想做成gif图的,尝试各种工具无果)ObjectAnimator简介及实现思路 ObjectAnimator是从api level 11 (Android3.0x)增加的类。在11已下版本使用,你可以在工程中引入nineoldandroids包。   这里直接翻译android文档的内容。  This subclass of ValueAnimator provi

2015-07-13 19:25:29 2302 1

原创 使用android.graphics.Path类自绘制PopupWindow背景

PopupWindow简介PopupWindow是悬浮在当前activity上的一个容器,用它可以展示任意的内容。 PopupWindow跟位置有关的API有下面几个:showAsDropDown(View anchor, int xoff, int yoff, int gravity) 显示在anchor的左下角,通过xoff,yoff调整距离,gravity是popup相对于anchor的

2015-07-01 15:36:59 1620

原创 AFinal-开源android应用框架简介

目录官方网站简介 什么是orm?什么是ioc?目前Afinal的四大模块 什么是ajax?什么是LRU算法?FinalDB使用方法FinalActivity使用方法 什么是java注解?FinalHttp使用方法FinalBitmap使用方法未完待续正文1. 官方网站开源中国社区AFinal项目2. 简介Afinal 是一个android的sqlite orm 和 io

2015-05-20 23:06:57 967

转载 极光推送技术原理:移动无线网络长连接

移动互联网应用现状   因为手机平台本身、电量、网络流量的限制,移动互联网应用在设计上跟传统 PC 上的应用很大不一样,需要根据手机本身的特点,尽量的节省电量和流量,同时又要尽可能的保证数据能及时到达客户端。   为了解决数据同步的问题,在手机平台上,常用的方法有2种。一种是定时去服务器上查询数据,也叫Polling,还有一种手机跟服务器之间维护一个 TCP 长连接,当服务器有数据时,实时推送到

2015-05-11 22:33:48 1165

转载 Android性能优化典范(一)

转自:http://www.csdn.net/article/2015-01-20/2823621-android-performance-patterns新年伊始,Google发布了包含16个短视频的Android性能优化典范专题,详解Android系统中有关性能问题的底层工作原理,并介绍了如何通过工具找出性能问题以及提升性能的建议。本文作者对这些问题和建议进行了总结梳理。 2015年伊始,Go

2015-04-29 23:43:48 614

转载 Android性能优化典范(二)

转自: http://www.csdn.net/article/2015-04-29/2824583-android-performance-patterns-season-2/1摘要:Google于不久前发布了Android性能优化典范第2季课程,共有20个短视频,内容涵盖电量优化、Android Wear上如何做优化、LRU Cache、Bitmap的缩放、提升设置alpha之后View的渲染性

2015-04-29 23:37:41 627

原创 RecentApps图标异常分析

问题描述 打开图库,点击“发送 ”按钮,选择上传到苏宁云,分享后点击“最近应用 ”按钮,发现云盘图标异常。 问题分析 **模块**SystemUI 源码位置:frameworks/base/packages/SystemUI/src/com/android/systemui/recent/icon加载过程(RecentTaskLoader.java) 从Task信息中获取图标fin

2015-04-29 20:30:33 1379

转载 GitHub vs. Bitbucket 不只是功能不同

转自 开源中国社区 YiHunter, Ley英文原文:GitHub vs. Bitbucket: It’s More Than Just Features让我们回到2005年,Bitkeeper,当时托管着Linux内核项目,在改变它关于价格的核心策略后引发了一系列的事情。在被Andrew Tridgell创建的免费Bitkeeper复制后,内核的协议变得令人痛苦——这在开源社区是一个重要的事情

2015-04-23 19:35:43 1332

转载 Android多线程分析之四:MessageQueue的实现

Android多线程分析之四:MessageQueue的实现罗朝辉 (http://blog.csdn.net/kesalin) CC 许可,转载请注明出处在前面两篇文章《Android多线程分析之二:Thread的实现》,《Android多线程分析之三:Handler,Looper的实现》中分别介绍了 Thread 的创建,运行,销毁的过程以及 Thread与 Handler,Looper 之间

2015-04-13 20:11:05 580

转载 Android多线程分析之三:Handler,Looper的实现

Android多线程分析之三:Handler,Looper的实现罗朝辉 (http://blog.csdn.net/kesalin) CC 许可,转载请注明出处在前文《Android多线程分析之二:Thread的实现》中已经详细分析了Android Thread 是如何创建,运行以及销毁的,其重点是对相应 native 方法进行分析,今天我将聚焦于 Android Framework 层多线程相关

2015-04-13 19:58:35 504

转载 Android多线程分析之二:Thread的实现

Android多线程分析之二:Thread 罗朝辉 (http://blog.csdn.net/kesalin) CC 许可,转载请注明出处在前文《Android多线程分析之一:使用Thread异步下载图像》中演示了如何使用 Thread 处理异步事务。示例中这个 Java Thread 类都是位于 Framework 层的类,它自身是通过 JNI 转调 dalvik 里面的 Thread 相关

2015-04-13 19:57:17 544

原创 微信、陌陌等著名IM软件设计架构详解-低手解读

原文 :微信、陌陌等著名IM软件设计架构详解 1 什么是IP直连? 参考: DNS优化之IP直连 android httpclient 服务器 ip 直连问题 (移动互联网中,DNS解析的失败率是联网失败中占比很大的一种。为了优化这个问题,我们使用了IP直连。即,从服务器拉取一个配置文件,里面包含域名到IP映射。客户端每次联网时根据域名在配置文件中查找到对应

2015-04-08 10:26:22 1616

转载 微信、陌陌等著名IM软件设计架构详解

对微信、陌陌等进行了分析,发出来分享一下(时间有些久了) 电量:对于移动设备最大的瓶颈就是电量了。因为用户不可能随时携带电源,充电宝。所以必须考虑到电量问题。那就要检查我们工程是不是有后台运行,心跳包发送时间是不是合理。 流量:对于好多国内大部分屌丝用户来说可能还是包月30M,那么我们必须站在广大用户角度来考虑问题了。一个包可以解决的就一个包。 网络: 这个也是IM最核心的内容了,我们要

2015-04-08 09:27:43 1247

转载 Android中的安全与访问权限控制

目录原文链接:http://blog.sina.com.cn/s/blog_66a6a5ec0100p4u2.htmlAndroid是一个多进程系统,在这个系统中,应用程序(或者系统的部分)会在自己的进程中运行。系统和应用之间的安全性是通过Linux的facilities(工具,功能)在进程级别来强制实现的,比如会给应用程序分配user ID和Group ID。更细化的安全特性是通过”Permiss

2015-04-07 20:23:16 491

转载 为什么浏览器User-agent总是有Mozilla字样——User-agent String里的历史故事

(原文链接:http://nonfu.me/p/8262.html)你是否好奇标识浏览器身份的User-Agent,为什么每个浏览器都有Mozilla字样?Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36 Mozilla/5.0 (

2015-04-07 09:48:15 788

翻译 Java 线程wait, notify and notifyAll 示例

原文地址:http://www.journaldev.com/1037/java-thread-wait-notify-and-notifyall-example Java的Object类提供了三个final方法来在维护多线程中资源的锁状态。它们是wait(), notify() 和 notifyAll()。使用这三个方法来维护资源的线程必须有该资源的monitor(使用synchroni

2015-04-05 23:04:51 471

原创 adb 异常总结

adb可谓是android应用开发必备工具,如果哪天它罢工了就没得玩了。现将adb工具异常情况总结如下:1 adb server端口被占用。错误提示如下:adb server is out of date.  killing...ADB server didn't ACK* failed to start daemon *error: unknown host servic

2015-03-31 22:38:04 2414

原创 android notification 总结

今天使用Notification 遇到了 些诡异的问题,记录下来,以备后用。1 需求:定时获取消息,并在通知栏显示;点击通知栏弹出消息框。2 实现:AlarmManager + BroadcastReceiver + NotificationManager部分代码如下: public static void setupGetMessageAlarm(Context c

2015-03-31 20:39:46 578

原创 异类 不一样的成功启示录

一 图书简介:  作者:[美] 马尔科姆·格拉德威尔  副标题: 不一样的成功启示录  ISBN: 9787508615158  页数: 259二 目录序 罗赛托之谜第一部分 机遇第一章 马太效应第二章 10,000小时的标准第三章 天才的烦恼(第一部分)第四章 天才的烦恼(第二部分)第五章 乔·弗洛姆的三

2015-01-03 22:01:01 886

原创 笔记——专访李运华:程序员如何在技术上提升自己

原文链接:http://www.csdn.net/article/2014-10-20/2822190摘要:专访李运华:程序员如何在技术上提升自己方法:1 写博客2 链式学习:从一个点不断学习相关的知识3 闭环学习:了解整个功能或业务的全流程实现,涉及了哪些模块和系统,每个模块和系统主要负责什么功能,涉及到什么技术,性能怎样,有什

2014-12-09 20:46:25 803

原创 eclipse,android 开发命令(持续更新中)

一,adb命令---2012/11/07---adb 常用命令大全参见 http://lib.open-open.com/view/1327557366686当操作设备不便时,可用命令启动activiyt,sevice等,并可进行返回,菜单等按键操作。1,adb shell 启动activity  am start -n pkgName/pakName.MainAc

2012-11-07 20:03:12 652

android studio 插件FindViewByMe,代码及jar包

详情见http://blog.csdn.net/wenping1980/article/details/50543295

2016-01-19

OpenBookAnimationProj

博客地址: blog.csdn.net/wwenping1980 《使用ObjectAnimator开发打开、关闭书本动画》

2015-07-13

PopupCustomTestProj

博文介绍地址:http://blog.csdn.net/wenping1980/article/details/46710945

2015-07-01

mock测试简介及演示(源码+ppt)

Mock测试是一种测试思想,那就是通过模拟的手段提高模块的可测试性。测试性不强的模块是软件工程质量的大敌。 本资源位mock测试的简介及简单示例,使用android mock objects实现了模拟android MediaStore的功能。

2013-11-05

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除