摘要:
最近开发的一个项目主要有两个特点,这两点也是在项目开发前需要着重去规划解决方案的:需要和Rest服务端请求大量的数据同时这些数据本地也要保存到sqlite数据库对于第一点,目前的Volley、Gson等框架既可以解决从服务端请求数据拉下Json数据并解析成java对象的全过程。但是对于第二点,就有点... 阅读全文
摘要:
Google最近为了让开发者更好的更规范的应用Material Design设计思想,特意放出了android support design library,里面含有更多Material Design的标志性组件,其中最常用的就是那个圆形按钮,叫做Floating Action Button,可以简... 阅读全文
摘要:
问题的导入Android互联网产品通常会有很多的结构化数据需要保存,比如对于登录这个流程,通常会保存诸如username、profile_pic、access_token等等之类的数据,这些数据可以组成一个bean,比如就叫做User:public class User { Strin... 阅读全文
摘要:
(本篇博客举了一个反面的例子,目的在于让新手如何去发现自己的错误)最近项目开发中使用了一个叫做leakcanary的内存泄漏检查工具,当开发中的调试运行时发生内存泄漏,leakcanary会在notification弹出一个内存泄漏报告,最近发生了个内存泄漏并且leakcanary给出了下列报告:分... 阅读全文
摘要:
引子在Android项目开发中特别是一些稍大型的项目,面对需求文档的时候你经常会发现很多地方用到了同样的组件,但是又略有不同。比如这个:右边是一个小键盘输入板,左边当焦点不同的时候分别用右边的小键盘输入板来输入内容,同时发现很多别的地方也用到了这个小键盘输入板。按照以往的做法,我们可能这样子来做出这... 阅读全文
摘要:
首先分享一个最佳实践:大家开发复杂一些的Android应用的时候常常会写一个BaseActivity或者BaseFragment,里面写上一些基本而公用的方法,比如监听网络状况、弹出对话框、设置actionbar等,然后实现业务的Activity或者Fragment继承自这个基类。这样子可以大幅度的... 阅读全文
摘要:
Maven有一些核心的知识点需要了解,比如坐标、仓库、插件、生命周期等概念,这里将依次解释。坐标Maven以构件来组成基本的控制单元,而定义这个构件的标示,Maven给定义为“坐标”。坐标是Maven最基本的概念,它就像每个构件的身份证号码,有了它我们就可以在数以千万计的构件中定位任何一个我们感兴趣... 阅读全文
摘要:
简介如今用于项目管理和自动化构建的东东用的比较多的,比如:eclipse中用到的ant现今流行的android studio中用到的gradle这里将介绍另一种工具——maven (也可以用来构建android项目)!Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报... 阅读全文
摘要:
很多新手开发程序的时候,或者将原来跑在Android 2.X上的程序迁移到Android 3.x以上的时候经常会莫名其妙的出现崩溃(Crash)。从我的经验来看,这里可能有很多原因,但是最重要也是最常见的一个,可能是因为你在UI线程中做了一个耗时的操作。什么是UI线程?UI线程的重要性和概念是每一个... 阅读全文
摘要:
现在很多项目需要到达同一个Apk既可以在Phone上跑也尅在tablet上跑,即界面要适应不同尺寸和类型的需要而自动调整。这个即为响应式设计。在web开发商响应式设计已经是个常谈的内容了,而对于android开发,也有很多相关的资料,比如使用fragment。这里将一些要点总结下。1. 使用rela... 阅读全文
摘要:
首先提下ButterKnifey已经更新到版本7.0.1了,现在注解已经不叫@InjectView了,而叫@Bind,感觉更贴合语义。同时注册的方式也从ButterKnife.inject(this);变成了ButterKnife.bind(this);关于7.0.1的ButterKnife的各种用... 阅读全文
摘要:
问题:项目中不同的分发渠道可能需要打包多种APK(同样的代码),包名可能是不一样的,如果一个一个修改包名重新编apk是很麻烦,可以参考下列步骤在Android Studio上操纵Gradle来打包不同包名的apk。这里例子的目标是,同样的代码,打包成com.example.android.newsr... 阅读全文
摘要:
通常多pane的设计中,比如Fragment A是个Headline,Fragement B是detail,那么B通常需要实现A的点击事件的接口,这样子的话,两个fragment就高耦合了,而且需要在Fragment A中编写一个interface,如果Fragment很多,情景更复杂些,就乱了。这... 阅读全文
摘要:
目前很多android app都内置了可以显示web页面的界面,会发现这个界面一般都是由一个叫做WebView的组件渲染出来的,学习该组件可以为你的app开发提升扩展性。先说下WebView的一些优点:可以直接显示和渲染web页面,直接显示网页webview可以直接用html文件(网络上或本地ass... 阅读全文
摘要:
在编写自定义view的时候,通常会在onTouchEvent回调方法中进行一些关乎距离的判断逻辑,这里的距离常量如果适配到多分辨率的不同设备上时可能会出现一些错乱的问题。所以一般来说,常常需要dp到Px的转换操作,常用的方法如下:1. 定义常量,仅仅是个数字,但是隐含的单位为dp2. 在使用该常量的... 阅读全文
摘要:
Android的button控件默认在内部text周围是有padding的,而且不受控制,这样子看似button控件在高度/宽度上像是被拉伸了,如何解决这个问题?只要在xml中设置MinHeight 和 MinWidth 为0dp即可解决 阅读全文
摘要:
网上看到两篇文章,一个说明如何在app中加入搜索功能(调用android SDK)http://zhouyunan2010.iteye.com/blog/1134147一个说明了search功能在fwk中如何实现http://willsunforjava.iteye.com/blog/1674817... 阅读全文
摘要:
在android开发中显示一个AlertDialog时,常采用下列的写法:new AlertDialog.Builder(getApplicationContext()) .setTitle("Dialog") .setMessage("Link program") ... 阅读全文
摘要:
http://liuzhichao.com/p/832.html 阅读全文
摘要:
1. 可见性如果一个线程对共享变量值的修改,能够及时的被其他线程看到,叫做共享变量的可见性。如果一个变量同时在多个线程的工作内存中存在副本,那么这个变量就叫共享变量2. JMM(java内存模型)多个线程同时对主内存的一个共享变量进行读取和修改时,首先会读取这个变量到自己的工作内存中成为一个副本,对... 阅读全文