- 博客(78)
- 资源 (1)
- 收藏
- 关注
原创 Google应用框架实践
相信大家最近应该看过一篇比较火的文章:Google 官方应用架构的最佳实践指南, 本文就是按照官方应用架构写的一个实例Drible, 也是基于我之前写的Dribbble的demo,打算重新写一个Dribbble App。下面就再总(翻)结(译)一下新的架构的亮点,以及我个人在使用过程中的体验。新推出的框架主要是围绕以下两条准则,开发体验更棒的App:第一条准则:「不要在应用程序组件中保存任何
2017-06-16 10:12:50 414
原创 一个图片列表的问题(Glide)
这篇文章来源是测试发现的一个bug, 为了解决这个问题,深入分析了部分Glide源码和Android View的绘制原理,在这里做个记录。问题描述这个bug是这样的:在商品详情页面,图片展示详情的时候,会出现如下问题:左边是刚进入详情页面的时候, 右边是详情页面往下滑动,再回到原来的位置展示的情况。会发现:左边是正常的,图片所有内容都正常展示在view中,而右边,图好像“变大“了,部分内容
2017-06-16 10:12:47 364
原创 Android源码——Activity启动流程
之前在Mac环境下搭建了Android源码,接下来会在简书记录阅读一些经典场景的源码过程, 本文主要是在阅读启动Activity源码过程中做的一些记录, 其中主要的思路是参考罗老师的文章:Android应用程序启动过程源代码分析几个重要概念在看Activity启动源码之前,先看几个概念, 这几个是理解Activity启动流程的重要概念:ActivityManagerService: AMS
2017-06-16 10:12:43 286
原创 Mac 10.12 编译Android源码
折腾了一个多星期,终于把源码编译导入AS了, 本文主要记录源码编译过程中的几个问题。1,首先是源码下载的问题, 问题不大,直接使用清华镜像下载,参考:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/要注意的是,现在网上有些文章记录的有点早, 还在使用git://链接,但是已经不支持了, 清华镜像的公告:2016-06-24 : 关闭 git:// 协
2017-06-16 10:12:40 389
原创 LruCache
LruCache图片缓存常用的容器, Least Recently Used Cache(最近最少使用)。顾名思义,这个缓存算法的亮点: 当缓存内容过多的时候, 将最近最少使用的缓存对象移除;先看看LruCache的数据结构:public class LruCache { private final LinkedHashMap map; /** Size of this c
2017-06-16 10:12:37 171
原创 Java垃圾回收机制
最近在啃《深入理解Java虚拟机》, 本文总结了垃圾回收使用的算法。概述Lisp 第一门真正使用内存动态分配和垃圾收集技术的语言;为什么学习垃圾回收机制: 当垃圾收集成为系统达到更高并发量的瓶颈时, 我们就需要对这些自动化的技术实施必要的调节和监控。垃圾收集的3件事情:哪些内存需要回收;什么时候回收;如何回收哪些内存需要回收首先总结一下Java虚拟机主要的内存区域(主要在第2章
2017-06-16 10:12:34 145
原创 RxJava深入
今天在公司做了一个RxJava分享, 为了准备这个分享, 阅读了RxJava的源码, 对于Rxjava的使用也有了更深刻的认识, 进一步改进了项目中的代码, 有些地方会惊叹:原来用RxJava这么简单!!下面就几个方面再记录一下自己RxJava使用的心得
2017-06-16 10:12:31 230
原创 Retrofit+RxJava总结
上次发布的文章Retrofit2.0+RxJava初步 简单介绍了Retrofit2.0与RxJava结合使用, 前段时间在公司的项目中引入了Retrofit框架,今天对项目中碰到的问题和一些常见的使用场景做个总结。本文主要包含以下2个内容:HttpResult统一处理返回结果网络请求与生命周期绑定retrofit缓存及日志统一处理返回结果在项目中一般与后台定义好返回的json数据
2017-06-16 10:12:28 261
原创 《Android开发艺术》读书笔记-消息机制
之前写了一篇文章Android Handler总结 ,介绍了Handler的基本用法和基本原理。本文是读完Android的消息机制的读书笔记, 从源码分析了消息传递的机制, 对于Handler,以及Looper和MessageQueue有了更深刻的理解。消息机制的概述主要申明几个概念,也是接上一篇Android Handler总结 中的原理的内容,再阐述几个重要的概念:Handler, 作
2017-06-16 10:12:25 188
原创 Retrofit2.0+RxJava初步
之前看了StormZhang的网络请求哪家强, 里面有详细的主流网络请求框架对比,最近在自己的项目中引入了Retrofit2.0, 同时配合使用RxJava,替换了原先OkHttp。本文对于基本的实现做了总结,也有一些碰到的问题,以及Retrofit2.0相对1.0版本的一些变化依赖项compile 'io.reactivex:rxandroid:1.2.1'compile 'io.rea
2017-06-16 10:12:22 375
原创 Android Handler总结
Handler是什么Handler是Android提供的用来更新UI的一套机制, 也是一套消息处理机制,我们可以通过它来发送和处理消息。Handler在Android Framework中应用也非常广泛: 其中,Activity生命周期回调的方法被调用的过程就是通过Handler来实现的。为什么要使用HandlerAndroid设计的时候就封装了一套消息创建,传递,处理机制,如果不遵循这样的
2017-06-16 10:12:19 172
原创 Android UI架构初步
项目中从最初的MVC架构演变为MVVM架构,本文主要通过Google推出的官方实例,学习MVP架构。MVP/MVC对比对比图MVP架构:View不直接与Model交互,而是通过与Presenter交互来与Model间接交互。Presenter与View的交互是通过接口来进行的。通常View与Presenter是一对一的,但复杂的View可能绑定多个Presenter来处理逻辑。MVC架构
2017-06-16 10:12:17 144
原创 《Android开发艺术》读书笔记-RemoteView
RemoteView 在Android中的使用场景有两种: 通知栏和桌面小部件。《Android开发艺术》第5章重点分析了通过RemoteViews实现远程更新(通知栏和小部件)界面。1 RemoteViews应用通知栏Notification相关类,做了更新,例子很简单,最新的API代码可以参考官方教程关于RemoteViews更新界面的代码:RemoteViews remoteViews
2017-06-16 10:12:14 295
原创 网络加载图片对比(Fresco/Glide)
Glide 与 Picasso对比:https://inthecheesefactory.com/blog/get-to-know-glide-recommended-by-google/en项目中使用Fresco已经一年多了,碰到了一些坑, 但总体来说还是很强大。我参考了上面的对比方式,将Fresco与Glide做了类似比较Fresco vs Glide功能要从功能上来说, fresc
2017-06-16 10:12:10 235
原创 python 多线程 锁
参考:《Python cookbook》12章启动和停止线程start 启动线程;is_alive 判断是否已经结束;join 请求连接某个线程, 等待该线程结束,才退出join函数;daemon参数, 守护线程,该线程无法被连接,主线程结束后自动销毁。(2.7不适用)终止线程:需要自己构建终止操作, 一般在while循环中添加标识符来判断是否需要停止线程。一个demo, 当terminate()
2017-06-16 10:12:08 142
原创 《Android开发艺术》读书笔记2-View工作原理
ViewRoot & DecorView基本概念ViewRoot对应ViewRootImpl类,它是连接WindowManager和DecorView的纽带,View的三大流程均通过ViewRoot来完成。ActivityThread中,Activity创建完成后,会将DecorView添加到Window中,同时创建ViewRootImpl对象,并建立ViewRootImpl与DecorView的
2017-06-16 10:12:05 179
原创 《Android开发艺术》读书笔记(View的事件体系)
《Android开发艺术》是今年上半年的读书计划之一, 本文是第三章”View的事件体系”的总结。View基础知识View是Android所有控件的基类,ViewGroup即是一组View。View的参数位置, 由四个顶点的坐标确定: top, left, right, bottom.(坐标是相对于View的父容器);Android3.0以后增加了x, y(左上角的坐标) translation
2016-03-20 22:40:12 367
原创 React Native & Code Push
本文主要实践了在已有项目中集成React native, 并且通过code push实现更新ReactNative页面。React NativeReact Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用。在 JavaScript 中用 React 抽象操作系统原生的 UI 组件,代替 DOM 元素来渲染等。
2016-03-18 16:03:42 1772 1
原创 Volley NegativeArraySizeException 解决
今天在百度统计看项目上有一个crash比较高的bug: java.lang.NegativeArraySizeException: -1092 at com.android.volley.toolbox.DiskBasedCache.streamToBytes(DiskBasedCache.java:322) at com.android.volley.toolbox.
2015-05-29 22:01:39 3992 1
原创 Android开发—内存优化(初步)
这篇文章是关于这两天Android内存优化学习的记录,包括Android内存泄露的原因,Eclipse MAT工具的使用等。参考文章:http://blog.tisa7.com/tech/android_memory_management_and_solve_oom_problem.html 这篇文章写得很详细,很受益,我就拿里面几个我在项目中碰到的实例,来分析一下。准备工具Eclipse M
2015-02-09 23:38:58 583
原创 Android—ShareWithU开发记录
ShareWithU开发也有一段时间了,今天在这里记录一下之前解决的一些问题。Bitmap 写文字新增的功能,在Bitmap中写上每个用户的名称,然后再标记在地图上。代码比较简单,主要是利用canvas在bitmap上写文字。public static Bitmap writeTextOnBitmap(Bitmap bitmap, String text) { if
2015-01-31 21:15:26 608
原创 Android开发—几个问题总结
今天的几个问题1, activity被回收,如何恢复当前状态。当A跳转到B,在这之间A又被回收了,当B返回的时候,如何恢复A原先的状态。protected void onCreate(Bundle savedInstanceState) 上面的这个onCreate函数带的Bundle参数,就是当activity意外被回收的时候可以保存的一些状态。Android acti
2015-01-31 20:59:24 665
原创 Android开发—broadcast短信监控
昨天给自己的app新增了一个功能:可以允许指定好友通过短信方式来打开自己手机的gps定位,并将位置信息上传至服务器。因为定位功能在程序后台运行的时候是关闭状态的,所以通过app还是不能随时查看好友位置。通过broadcast receive 来获取监控短信的接收,并且解析短信数据,符合的话即打开gps通知好友。主要三个步骤:1, AndroidManifest添加短信接收权
2015-01-25 22:42:28 2453
原创 Android开发—引入开源项目(gradle)
先分享一个比较好的Android开源项目分类汇总链接:https://github.com/Trinea/android-open-project里面有很多值得学习的开源库,我今天是打算将其中菜单栏的开源库放到我的项目中;其中碰到了许多问题,在这里记录一下。一,开源库CircularFloatingActionMenu一个可定制的圆形的浮动菜单控件,类似于Path的
2015-01-11 16:04:11 3635
原创 Android开发—bmob云服务器
今天逛知乎的时候发现一个开发利器!真是孤陋寡闻,亏我还一直在学习怎么搭建服务器,之前登录功能做到一半,服务器数据库一直没时间去搞。原来!有人已经把这些事情都做了,而且还是免费提供!bmob不多说了,也就我这样的菜鸟现在才知道。不过java web还是要学习的,后面web端也得做。大致看了以下bmob的开发文档,做的确实很好,很全面,数据库操作也很容易上手。把原来的登陆改了就以下
2014-12-21 22:43:29 4196 1
原创 Android开发—Service学习二(onBind)
学习来源:《网易云课堂-Android基础教程》上一篇Service的实现只是service的一部分,如果需要service与访问者进行数据交互,就需要service的另外一个生命周期OnBind与onUnBind。例如,上一篇已经在service中实时获取GPS的信息并发给服务器了,利用OnBind方法,将service的gps信息发送给主界面地图,就不用在activity中另写一个获取
2014-12-20 23:16:39 6523
原创 Android开发—Service学习一(实时给服务器发送GPS位置)
学习来源:《网易云课堂-Android4.0应用开发第一季》Service作为Android的四大组件之一,常见的功能如闹钟、音乐播放、网络加载图片等都是Service实现的。今天总结一下我之前写得通过Service给服务器实时发送GPS信息。首先,需要提出的是,在Android开发官网中,有关于以下的说明:Most confusion about the Serv
2014-12-18 21:02:06 6174 1
原创 Android学习—CallBack机制
接上一篇函数指针的总结===============================================android callback的学习:先贴一段callback维基百科的解释吧,回头再写几个例子看看In computer programming, a callback is a piece of executable code that is passed
2014-12-14 20:41:03 8168 2
原创 C++函数指针学习和总结
这两天在看《Programming android》,其中一个小节是“Overrides and Callbacks”, 主要讲了Android中的一些接口,特别是以Handler、Callback、Listener这三个词结尾的,都是利用callback机制来实现的。回想起半年前面试的时候,面试官问我的一个问题:“C++中有函数指针的概念,来实现动态调用不同的方法;那么java中有这
2014-12-12 20:55:42 2083 1
翻译 Android开发—Navigation Drawer(侧边栏菜单实现)
学习来源:Navigation Draw描述: http://developer.android.com/design/patterns/navigation-drawer.html 如何创建一个Navigation Drawer: http://developer.android.com/training/implementing-navigation
2014-12-10 22:37:14 37823 2
翻译 Android开发—Navigation Drawer(侧边栏菜单实现)
学习来源:Navigation Draw描述: http://developer.android.com/design/patterns/navigation-drawer.html 如何创建一个Navigation Drawer: http://developer.android.com/training/implementing-navigation
2014-12-10 22:00:42 280
原创 Android开发一客户端与服务器交互(登陆功能)
这两天在学习客户端与服务器的交互,简单做了登陆功能。#准备工作:1, 搭建JavaEE开发环境,下载对应eclipse2, 安装Tomcat3, 安装tomcat eclipse插件,http://www.eclipsetotale.com/tomcatPlugin/。。。回去再试试登陆功能
2014-12-08 23:40:19 19255 2
原创 Android开发之路——重头再来!
之前一段时间就开始准备Android开发,前面断断续续学习了一些新知识,python、django、linux c。都是浅尝辄止,感觉还是要认认真真做好一件事情,于是决定重拾android开发!第一个准备,就是买了一只android手机,锤子,体验了一下,总体感觉还不错,除了打字的时候的触屏感觉,其他也都还行,满分10分的话有8分吧。另外,android就是没有网易公开课的视频可以看。第二
2014-12-06 00:02:24 523
Win8传感器值获取(MFC+vs2010)
2013-10-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人