自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (7)
  • 收藏
  • 关注

原创 Android 之自定义表情

关键技术:SpannableString、ImageSpan关键流程:初始化 - 从本地读取在代码里写死所有表情的列表,初始化表情字符与图片的对应关系,能从字符串中识别表情字符串并得出 SpannableString。表情输入面板 - GridView + ViewPagerEditText - 添加单个表情(点击输入面板得到的),删除单个表情(如果表情符号由多个字

2015-09-21 23:01:51 1499

原创 Fresco 使用笔记

官网:http://frescolib.org/中文版:http://fresco-cn.org/中文版可能没更新最新的内容,所以我还是喜欢直接看英文版的官网。(PS:以下操作是在全程 VPN 环境下进行)都说用 Android Studio 来使用会比较好,于是把原来的项目迁过来 Android Studio 了,折腾过一阵子后,原项目终于可以正在编译运行。但

2015-09-16 22:24:24 594

原创 Android 之调试

手头有部 oppo 手机很麻烦,进不了调试模式,一直在  waitting for debuger,logcat 也不能把当前 app 的日志过滤出来,跟一大堆系统的日志混在一起。然后发现日志可以加正则来过滤掉一些不想看到的日志:^(?!View|VM_BMS).*$这个正则是把  tag 为  View 或者  VM_BMS 的日志过滤掉。

2015-08-27 15:39:39 530

原创 刷机

做为我这种不折腾不快活的人,安卓手机到手,总喜欢定制一下:root -> 卸载自带软件->清理自启软件让系统在更简洁清爽。目前的手机:联想 A788t (低端机、中国移动合作机)做了两件事件,导致开不了机了:卸载了原生的桌面把新安装的默认的桌面安装在 SD 卡于是在某种情况下,开机时没认 SD 卡的软件(遇到过几次了),于是就开机失败,一起循环在启动-》

2015-08-19 23:00:25 865

原创 Android 之 Android Studio

或早或晚,还在这里混的,总要迁过来 Android Studio推荐一个资料下载点(其实我是用 vpn 找到最新版下载地址,然后用百度去离线下载的):http://www.androiddevtools.cn/推荐一个免费代理,方便更新开发环境:http://blog.honx.in/dev-only/推荐一个博客,好入门:http://www.stormzhang.com/p

2015-08-10 22:49:12 377

原创 Android 之进程和服务

同一个服务,多次绑定,只有第一次能收到 onServiceConnected 回调。onServiceDisconnected 方法在正常情况下是不被调用的,它的调用时机是当Service服务被异外销毁时,例如内存的资源不足时这个方法才被自动调用。

2015-07-11 20:24:11 332

原创 Android 之坑

APP不在前台时, startActivity 后,并没有马上运行那个 activity。同一个 service ,同一个 connection ,多次绑定是无效的?

2015-05-17 15:34:54 326

原创 CMS 管理系统使用

CMS哪个最好?

2015-05-05 14:58:34 543

原创 Android 之 Services

官方文档:http://developer.android.com/guide/components/services.html官方推荐,简单情况下,用 bindServices 就够了,对于单进程的 APP 已经够用。如果要使用多进程,官方推荐使用 Messenger 来通信,这里使用了单线程来处理消息,好处是不会有多线程的数据同步问题,不好的是只有一条线程可能会慢。如果要支持多

2015-04-14 21:00:40 409

原创 Android 之 不规则形状图片

参考:Android不规则图形(1)Android 图片合成:添加蒙板效果 不规则相框 透明度渐变效果的实现

2015-04-14 16:44:23 652

原创 MongoDB

下载链接:http://downloads.mongodb.org/osx/mongodb-osx-x86_64-3.0.2.tgz后面改成新新版本的版本号,就能下载最新版本;使用官方那个下载链接,要翻墙才能下。。。下载后,可直接运行里面  bin  目录下的东西,比如运行:bsondump live_channel.bson > channel.txt就能把 Mong

2015-04-12 14:08:04 333

原创 Android 之 Telegram 开源项目

源码地址:https://github.com/DrKLO/Telegram使用 Android Studio 来编译运行(第一次使用 Android Studio 来运行正式项目)先按指引上 Telegram 官网申请 app id 等信息。第一次运行时,默认运行的是 JUnit 的了,然后就报错了……(参考:Exception in thread “main” java.lang.

2015-04-07 19:43:00 6541 1

原创 Android 开发之 emoji 表情

使用 emoji 对应的编码来转图片不要使用自定义的文字来转参考:http://www.oicqzone.com/qqjiqiao/2014123020663.html

2015-03-28 04:32:22 706

原创 Android 之通知

图标尺寸:官网说明:http://developer.android.com/design/style/iconography.html#notification中文简介:http://blog.csdn.net/icyfox_bupt/article/details/26149145

2015-03-28 03:10:13 340

原创 Android 之 Volley

发现在网络不好的情况下,会自动重发一个请求,改发 DefaultRetryPolicy 里的 DEFAULT_MAX_RETRIES 也没用。header 有带验证信息,信息有效性只有一次,杯具了吧……发现两种方式可以修改:1、设置 DEFAULT_TIMEOUT_MS 为 0;2、在 HurlStack 添加: connection.setChunkedStreamingMode

2015-03-27 23:49:32 550

原创 Android 之未清楚的问题

主界面是 ViewPaper + fragment 实现的,当 app 挂掉之后会自动重启,但重启之后界面空白。看了 hierarchyviewer 是 fragment 未绑定到 ViewPaper 里;打日志看到 fragment 是跟父 activity 一起重启的,即大家都同时运行 onCreate 方法,正常启动时,是 Activity 运行到 onResume 时,才去初始化

2015-03-14 18:25:44 378

原创 书签、工具、软件

注:类别较大或数量较多的,会专门新建一篇博文。阅读RSS - 网易云阅读想找个好的 RSS 阅读器不容易,比较优秀的(如 gReader、Press)需要翻墙才能使用,不太现实。最后找到「网易云阅读」,觉得比较满足我的需求:能添加自定义的 RSS 源、能云同步、有网页版和客户端版,RSS 订阅源支持目录分类。另外,网易云阅读里面的东西很多,有好也有不好。也可以来 htt

2015-02-22 02:56:22 586

原创 Android 之书签、工具链接

通过关键字找示例代码:http://www.codota.com/

2015-02-22 01:16:49 374

原创 Andrid 之自动化测试工具 Monkeyrunner

注:以下是在 MAC 下运行的官方文档:http://developer.android.com/tools/help/monkeyrunner_concepts.html在 Android SDK tools 里有 monkeyrunner 工具,先把 tools 的目录路径加到 PATH,在终端输入 monkeyrunner 即进入。from com.android

2015-02-17 15:18:53 523

原创 Android 之图片处理

头像裁剪一个比较出名的库:https://github.com/jdamcd/android-crop/这个库貌似是从 Android 较高版本里里拿出来的。使用总结:不能自动旋转,设置最大尺寸无效,图片较大的话,保存的结果也比较大。AndBase 这个框架里,也带了这个功能。使用总结:比较稳定,不能自动旋转,但提供旋转的按钮。我要自己做一个!!!像微信

2015-02-05 16:29:03 423

原创 Android 之我的开源框架

额,客官,让您失望了,我的框架还没写……受开源精神的鼓舞,我觉得我要做点什么。http://githuber.info/#/report这里只是记录我的一些想法,如果以后一直在做 Android ,那我更会持续积累,直到弄出自己的完整的框架。发现国内的框架,很多都是大而全,国外的很多都是小而美,这里有列举一些。

2015-02-05 00:27:29 304

原创 团队管理/协作开发

好吧,迟早要思考这个问题。之前没怎么思考,这真是个问题。原则:目标明确 - 目标都不确明做啥子呢?步骤清晰,可衡量,要回顾 - 总有个计划,哪怕赶不上变化;氛围 - ?

2015-02-04 15:20:32 346

原创 Android 之开发、设计必备

设计、资源相关前面有一篇《Android 设计速记卡》讲了设计中的相关标准。这里还有手机各图标尺寸的搜集统计:Icon Slayer。Android 的 ic_launcher 简单的做法参考这里:Launcher Icon Generator类似的,其它类型的图标也有生成器:Android Asset Studio设备效果图生成器(传一张图片,生成在真机的效果,带手机壳和光影

2015-02-03 15:35:20 275

原创 Android 之设计/界面

先看权威的,Google 设计规范:http://www.google.com/design/spec/好好研读吧,少年!再看权威:http://developer.android.com/training/material/少年,加油!

2015-01-20 12:13:55 374

原创 Android 之 Fast Scroll 、字母索引栏

列表快速滚动,是比较常见的需求,特别是在通讯录上。现在 Android 好多 APP 都是字母索引栏,其实字母索引是 IOS 那边的规范,很多人觉得好用就抄过来了。在 Android 上原生的是叫 Fast Scroll ,特点是默认隐藏的,也没有一排的字母显示出来,只能在划动列表时出现。Fast Scroll 实现方法:继承 ListActivity (普通的 A

2015-01-17 19:09:04 1298

原创 交互设计

交互没做或都没做的产品就是一坨要考虑的情况:状态:未注册、空数据时、数据加载中、数据加载失败。

2015-01-16 15:55:00 437 1

原创 Android 之 ViewPager

ViewPager 是 Android 兼容包 v4 提供的东西,经常用户启动页、Tab 页和热点轮播。这里有个 PagerAdapter 用在 Tab 页时,经常用会到

2015-01-14 21:11:21 431

原创 Android 之 Account

自己开发的 APP,是否把帐户的安全性管理,交给系统会更好?Android 有 AccountManage ,不知道是否能用上。待研究。

2015-01-10 11:55:05 389

原创 Android 之网络

网络使用上,要解决什么问题?统一的接口(方便统一添加鉴权或者错误处理等)缓存策略异步策略(还要考虑是否可以中止,是否跟界面一起销毁)初步想法:NetManager.get(...)onCacheHitonResponseonError自动转化为 Java Bean可配置是否使用缓存问题怎么取消请求?首先应该看看 Google

2015-01-10 01:26:44 338

原创 Android 之开发环境使用笔记

Eclipse自从某一天开始,我发现 Mac Eclipse 提交代码时,不能自动保存密码了,两部电脑都是如此。提示:Storing credentials failed /Users/用户名/.eclipse/org.eclipse.equinox.security/secure_storage (No such file or directory)原来这个 secure

2015-01-07 17:12:30 752

原创 Android 之本地缓存

本地缓存用在缓存网络图片时,特别的需要,先看官网的例子,写得特别好:DisplayingBitmaps里面有一个 DiskLruCache 类,先学习一下。。。

2015-01-02 16:36:49 329

原创 Android 之源码

Android 源码:https://android.googlesource.com/platform/libcore

2015-01-02 16:34:07 308

原创 Android 之 loader

先看官方介绍:http://developer.android.com/guide/components/loaders.html再看牛人解释:Android之Loader理解loader  是 Android 3.0 之后的特性,但可以使用兼容包来兼容低版本。Activity 和 Fragment 都可以使用;异步加载;监听数据变化并返回变化之后的数据;当界面状态改变时,自动

2015-01-01 22:17:12 281

转载 编程原则

极限编程实践作业的核心可以被区分为以下四个范围(12个实践作业):小规模回馈测试驱动开发策划游戏全队(原名:在场客户)结对程序设计反复性程序而不是批量的持续集成设计优化(原名:软件重构)小型发布共同认识(共识)简单的设计系统隐喻集体代码所有程序设计标准/程序设计规约程序员的利益恒定速路可反复性速率(原名

2014-12-26 18:33:28 538

原创 Android 之后台推送

理想状态下,是不是只要手机被唤醒,检查一下是否有消息就可以了,不用一直都有条进程在后台运行着。这时就是注册 android.intent.action.USER_PRESENT 这个事件广播就好了。当然,还可以注册广播接收者监听屏幕解锁或者屏幕锁定的事件,甚至是电量变化的广播。但不要太过分哦。自己个人就很讨厌使用那些经常在后台运行的 APP。

2014-12-26 15:52:38 425

原创 Android 之成长笔记

跟自己学习成长相关的小事,点点滳滳,甘苦自知。在 ADT 21 之后,XML 文件第一行不再需要声明版本及编码。fill_parent 已废弃,应该都使用 match_parent。Command + Shift + O 快捷键导入引用包。调试时,如机器无法被识别,尝试在 device 面板重置 adb 。资源文件名都应该用小写。

2014-12-26 12:37:24 334

原创 Android 之 Service

先了解一下 service 的生命周期:android service 生命周期大概就是:start 出来的 service 一般就一直都会在;bind 出来的 service 会跟宿主一起销毁;系统内存紧张时进行回收内存,可能按优先级干掉你的任何东西。APP crash 之后,start 出来的 service 不受影响,此时 APP 会自动重启。

2014-12-25 16:34:00 310

原创 Android 之 APP 架构

题目好大,吓死自己了……架构是自己一直都不了解的东西,只有好好地不断积累学习。代码结构参考:App工程结构搭建

2014-12-23 22:21:27 586

原创 想做的

与健康相关的、硬件、软件、互联网结合的服务。

2014-12-17 17:42:54 337

转载 【eoeAndroid索引】史上最牛最全android开发知识汇总

来自:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=168008一、开发环境搭建 (已完成)负责人:kris 状态:已完成 所整理标签为:搭建  SDK  JDK  NDK  Eclipse  ADT  模拟器  AVD  调试器(DEBUG)  DDMS  测试 日志  Logcat  ADB

2014-12-15 00:34:57 903

Android 汉字转拼音

基于 Android 原生 ICU 的库实现; 优点是简单,快捷; 缺点是仅支持 Android 4.3 及以上的系统。 主要就是从源码(Android 5.0)里拷贝 HanziToPinyin.java 和 Transliterator.java 这两个文件过来。 Android 旧版的 HanziToPinyin.java 有点不一样,旧版的把编码都写进去这个文件,新版的是引用底层库。

2015-01-18

TapCounter(计数器)

Android 一般在使用 MVC 原则时,往往不容易把 V 和 C 层分离,这里提供了一个例子。

2014-12-24

Android SampleNetworking

很经典的 android 访问网络数据(这里是 RSS)的例子,按照 OOP 的思想来实现。 来自:http://www.therealjoshua.com/2012/10/android-architecture-structuring-network-calls-part-3/ Android Architecture: Structuring Network Calls, Part 3 October 7th, 2012 · 10 Comments · Android, OOP So far we’ve talked about some theory and OOP design principles and making our request asynchronous. In this post we’re going to discuss what was going on inside of the AsyncTask to make the network request and parse the data. Much like most of my posts, I won’t be discussing how to make a network request or how to parse xml or json. Instead, we’ll keep it broader and continue to talk about the architecture. Making the call: Let’s check out FetchRssHeadlinesTask. @Override protected List<RssSnipetVo> doNetworkAction() throws IOException, SAXException { command = new ReadRssCommand(rssFeed); return command.execute(); } You can see here that our class delegates the network request to another object. Let’s check out ReadRssCommand. public ReadRssCommand(String rssFeed) { this.rssFeed = rssFeed; } public List<RssSnipetVo> execute() throws IOException, SAXException { Uri.Builder builder = Uri.parse(rssFeed).buildUpon(); InputStream inStream = requestStream(builder.toString()); Document doc = streamToXml(inStream); List<RssSnipetVo> items = RssParser.parseItems(doc); return items; } Skeptic: Wait wait wait! So FetchRssHeadlinesTask delegates to ReadRssCommand which delegates to RssParser? You have 3 classes for 6 actual lines of code? That’s absurd. Yes that’s correct…well not the absurd part. There’s 2 OOP principles going on here, the Single Responsibility Principle and DRY (Don’t Repeat Yourself). The Single Responsibility Principle states that a class should only do one thing (and do it well. This also means it would only have 1 reason to change.) Let’s look at the responsibilities of each class. FetchRssHeadlinesTask - makes the request asynchronous. It has the option to perform business logic on the returned results. ReadRssCommand – is used to make the actual http request to the server. RssParser – is used to parse the results returned from the server into Data Objects. If we look at the responsibilities of the classes it’s clear where to break them up and delegate. Line numbers are not an indication of this, responsibilities are. Just a general hint: if you have to use the word “and” when describing what your class does, perhaps you should consider if it violates the Single Responsibility Principle. Let’s consider DRY for a moment now. ReadRssCommand calls some API (notice we don’t even care what url or api it calls. How and what it calls is hidden.) and that returns back an XML result set. Suppose we were to create a SearchRssCommand which took in a search term. The results back from that query would have the same structure as the ReadRssCommand. As such we can reuse the RssParser. If we had put that parsing code in with the network request we’d have to duplicate that same parsing logic in our SearchRssCommand. We would be repeating ourselves. Why is repeating ourselves such a bad idea? Duplicate code is hard to maintain. What happens when I find a bug in the parsing code or perhaps a new node is added to the XML? We’d have to go through all the different places and make change. By having a single point for parsing the XML results, it makes code easier to maintain and it becomes reusable. I want to point out to make sure it’s clear, it doesn’t matter if we’re using XML or JSON or POST or GET or PUT or whatever. Notice the internals are all encapsulated. It’s all hidden. If we were using JSON instead of XML, I’d still have an RssParser. It would just be parsing JSON instead of XML and the internals of that would still be hidden. If we were using POST instead of GET to fetch the RSS results, it wouldn’t matter. Our structure stays consistent throughout it all. As a quick summary, AsynTask command is used for business logic. The AsynTask delegates the URL request to another class whose responsibility it is to call the appropriate API with the correct parameters. The results of that API are passed into some type of parser (a custom parser or one that uses reflection or whatever) to translate it into data objects. From there the results are returned to the original requesting client. The specifics of what happens in between aren’t so important.

2014-12-24

AXMLPrinter2.jar

Android 查看签名或者加固后的二进制的 AndroidManifest.xml 文件。 使用方法: java -jar AXMLPrinter2.jar AndroidManifest.xml

2014-11-07

material-design(中英文对照版).pdf

源于官网的material-design.pdf文件,自己精心添加了中文翻译上去。

2014-07-04

实现在客户端的页面缓存

只要客端安装了flash插件,就可以用这种方法实现客户端缓存,把数据暂存在客户端上。

2009-01-19

CSS布局实录源文件.rar

里面有不少不错的布局实例,包括: CSS布局入门 多级下拉导航 横向导航传统表格HTML代码 横向导航系统_CSS布局 弓纵向导航系统 背景高级控制 表单 列表元素 字体样式 图片样式设计 链接 排版 高级技巧 浏览器兼容 可视化开发

2008-12-02

空空如也

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

TA关注的人

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