Android学习篇
白小先生
健身、投资、Coding。个人微信公众号:白小先生(zerogeek).
展开
-
Android多线程的简单使用
1.何时使用多线程?(耗时操作,避免主线程阻塞)当我们进行IO操作,如文件操作,网络操作,数据库操作,以及一些复杂运算和开发定时功能,这时就需要用到多线程编程了。2.如何使用?接下来做一个定时功能的小Demo,首先新建一个android project ,写一个主布局文件:main.xml:<LinearLayout xmlns:android="http://schemas原创 2015-03-25 19:11:17 · 389 阅读 · 0 评论 -
WeakReference在Android中的使用
弱引用(WeakReference)用于非必需对象。被弱引用关联的对象只能生存到下一次垃圾收集发生之前。当垃圾收集器工作时,无论当前内存是否足够,都会回收掉只被弱引用关联的对象。1. 非UI线程处理Bitmap(可以替换为其它对象)以下摘自官网class BitmapWorkerTask extends AsyncTask { private final WeakReference im原创 2015-08-28 18:02:42 · 8295 阅读 · 1 评论 -
Activity详解(主要参考官网)
总述活动是应用程序的组件,提供一个让用户可进行交互相关的操作的屏幕。例如,拨打电话,照相,发短信,显示地图。系统分配给每个活动一个窗口,用来绘制它的用户界面。一般窗口会充满屏幕,但也可能比屏幕更小或浮在其它窗口的顶端(用户看到的最外层)。一个应用程序通常包括许多互相松散的绑定一起的activity(藕合度低)。典型地,有一个activity被特殊的作为‘main’activity,代表用户第一次使用原创 2015-07-23 15:20:03 · 3727 阅读 · 0 评论 -
Fragment 学习小结
参考 : http://developer.android.com/guide/components/fragments.html一 概述Android 3.0(API level 11)加入,为了使界面更灵活,可复用,动态生成。二 要点:必须嵌入在Activity中,生命周期受Activity影响当在Activity中添加Fragment时,实际是在加入到ViewGroup中。(可直接用)成原创 2015-08-06 16:37:23 · 401 阅读 · 0 评论 -
Android单元测试
什么是单元测试?(摘自百度百科)单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的原创 2015-09-25 13:25:09 · 639 阅读 · 0 评论 -
Activity生命周期之横竖屏切换
下面讨论 API 12 以上的情况 (之前是不需要设置screenSize,并且可能与下面不一样)关键在于 Activity中的一个属性configChanges(可以不写)所有属性值的具体含义与用途,请自行查文档 <activity android:name=".activities.FirstActivity" android:configChanges=原创 2015-09-07 13:04:25 · 341 阅读 · 0 评论 -
从Zero分析Picasso源码
Picasso 是 Square 开源的图片缓存库,主要特点有:包含内存缓存和磁盘缓存两级缓存。在 Adapter 中自动处理 ImageView 的缓存并且取消之前的图片下载任务。方便进行图片转换处理。原创 2015-08-22 17:58:52 · 813 阅读 · 0 评论 -
NDK基本开发及适用场景
IDE:Android Studio 1.3 操作系统:Ubuntu 14.04 LTS基本使用1.去官网下载NDK,配置好路径2.新建JNIClass文件来写Java类public class HelloClass { static { System.loadLibrary("app"); // module的名字 } public native S原创 2015-09-16 15:51:44 · 2008 阅读 · 0 评论 -
使用AndroidStudio自定义Gradle插件
使用AndroidStudio自定义Gradle插件1.概述目标:编写一个Gradle插件,学习自定义Gradle插件。功能:利用lint自动删除无用资源。实现思路:先执行lint任务,通过解析生成的xml文件,找到id为UnusedResources的文件路径,并遍历删除,输出日志。开发工具:Android Studio 2.4。2.内容2.1新建一个工程,再新建一个Module作为插件模原创 2017-06-15 15:45:45 · 1810 阅读 · 0 评论 -
浅析layout_weight属性,gravity属性,layout_gravity属性
参考:http://developer.android.com/guide/topics/ui/layout/linear.htmllayout_weight属性 <基于LinearLayout 下的view>布局权重,意味这个view在当前布局中占据多大空间(比重)拥有更大weight值的view被允许扩展填充满parent view.(填满剩余空间)所有view默认weight值为0原创 2015-07-31 10:35:24 · 532 阅读 · 0 评论 -
android之布局优化
标签(空格分隔): android 性能优化 xml前期知识储备1. LayoutInflate主要是用于加载布局的.其实setContentView()方法的内部也是使用LayoutInflater来加载布局的.只不过这部分源码是internal的,不太容易查看到。LayoutInflater技术广泛应用于需要动态添加View的时候,比如在ScrollView和ListView中,经常都可以看原创 2015-07-29 16:59:38 · 486 阅读 · 0 评论 -
初涉XML解析
Extensible Markup Language (XML) 是一组将文档编码成机器可读形式的规则,也是一种在网络上共享数据的普遍格式。经常更新内容的网站比如新闻网站和博客上都提供XML feed来记录更新的信息,以便用户进行订阅读取。解析器我们用XMLPullParser ,Android 官网推荐。如果对xml不熟悉可以先看下http://www.w3cschool.cc/xml原创 2015-03-28 11:07:58 · 419 阅读 · 0 评论 -
AsyncTask的基本用法
昨天复习了一下多线程和handler的用法,今天再来分享下AsyncTask的用法,虽然很基础,但是很重要。AsyncTask的介绍,引用一下官网的英文doc:AsyncTask enables proper and easy use of the UI thread. This class allows to perform background operations and p原创 2015-03-26 10:10:16 · 383 阅读 · 0 评论 -
利用AsyncTask进行网络操作之下载HTML
一方面巩固下AsyncTasK 的用法,另一方面熟悉下基本的网络操作。那么我们一边实践一边学习吧:网络操作必须记得在manifest.xml 加入:1.联网的方式:Android 中提供了 HTTPClient 和 HttpURLConnection 两种方式 二者均支持HTTPS ,流媒体上传和下载,可配置的超时, IPv6 与连接池(connection po原创 2015-03-27 19:05:59 · 1089 阅读 · 1 评论 -
认识Volley-网络数据管理
原文:http://developer.android.com/training/volley/index.htmlVolley是一个HTTP库,它能够帮助Android apps更方便的执行网络操作,最重要的是,它更快速高效。Volley 有如下的优点:自动调度网络请求。高并发网络连接。通过标准的HTTP的cache coherence(高速缓存一致性)使得磁盘与内存缓存翻译 2015-03-29 10:43:14 · 525 阅读 · 1 评论 -
依赖注入之Android RoboGuice简单使用
维基百科解释:控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的原创 2015-03-30 09:09:12 · 530 阅读 · 0 评论 -
分析开源oschina客户端(二)
初步策划:1.src 目录结构:com.hnust.news - 全局设定包括 Application.java AppContext等。启动管理com.hnust.news.adapter - 各容器适配器com.hnust.news.api -API客户端接口,用于访问网络数据Com.hnust.news.common - App工具包Com.hnust.new原创 2015-04-29 13:29:33 · 468 阅读 · 0 评论 -
分析开源oschina客户端的源码(一)
由于近来要做一个个性化新闻推送的客户端。便来学习学习oschina的设计。目前开源了1.7的版本。一,目录结构和引用的jar:主要来分析目录src的分类:1.前面四项,com.barcode.* 都是关于扫描二维码的代码,是之后集成的。 2.com.weibo.net 里面是关于微博的分享,含有OAuth认证,调用微博分享页面等。3.greendroid.w原创 2015-04-27 10:25:58 · 881 阅读 · 1 评论 -
如何在ListView中嵌入ViewPager
最近2个月一直忙着做项目,一个是挑战杯的互联网专项赛事,最终获得了国家三等奖。另一个是湖南省程序设计大赛应用开发类。终于忙完了。其中需要在listview中嵌入viewpager。于是网上学习了下。主要在第一个item中加入viewpager。这里贴出适配器的代码package zero.com.nweq.adapter;import android.content.Conte原创 2015-07-01 18:23:00 · 687 阅读 · 0 评论 -
Java代码质量小结
代码质量小结根据Sonar修改代码的小结主要结合 Sonar的规则和目前项目中的代码来分析目录代码质量小结目录Bug与漏洞1. 给基本数据类型赋值前应该先做强制类型转换2. 使用float和double的注意事项3. if语句的判断条件不应该是一个确定值性能提升1.数组的复制建议使用System.arraycopy()2.字符串转为基本数据类型的推荐用...原创 2018-04-18 21:17:52 · 1497 阅读 · 0 评论