
【Android 基础】
文章平均质量分 87
sbsujjbcy
业精于勤,荒于嬉;行成于思,毁于随!
展开
-
Android插件化开发之OpenAtlas中四大组件与Application功能的验证
使用OpenAtlas进行插件化开发,插件的开发几乎可以按照正常程序的开发流程进行,无需添加额外的东西。为了验证四大组件是否能够正常工作,这里编写一个插件,验证其功能。除了四大组件外,大多数应用还有Application类。该类我们也需要进行验证。首先新建一个模块,按照正常流程进行开发。新建Application类,为了方便起见,所有验证都使用日志输出形式。原创 2015-08-24 16:06:10 · 3614 阅读 · 1 评论 -
Android插件化开发之OpenAtlas插件启动方式与插件启动广播
到现在为止已经写了6篇文章了Android插件化开发之OpenAtlas初体验Android插件化开发之OpenAtlas生成插件信息列表Android插件化开发之OpenAtlas资源打包工具补丁aapt的编译Android插件化开发之OpenAtlas插件适配Android插件化开发之解决OpenAtlas组件在宿主的注册问题Android插件化开发之OpenAtlas中四大组件与A原创 2015-08-25 13:26:38 · 3763 阅读 · 0 评论 -
Android插件化开发之OpenAtlas插件的安装与卸载、更新与回滚
用过Android的同学都知道,手机上的APP可以进行安装,安装完之后可以卸载,安装完后如果有新版本的话可以更新。此外还有一点,就是像windows那样,从win7升级到win10感觉不满意可以回滚到win7。但是回滚功能貌似在Android里是没有的。OpenAtlas也是如此,在我们的宿主上安装的插件,也是类似这个机制。OpenAtlas为我们提供了很好的插件安装,卸载,更新,回滚的功能。假设现原创 2015-08-26 09:23:48 · 4251 阅读 · 4 评论 -
RxJava入门
要理解RxJava,首先得理解什么是(异步)数据流。一些典型的点击事件本质上就是一个异步数据流,这样你就可以观察它的变化并使其做出一些反应。数据流无处不在,任何东西都可以转变为数据流,例如变量,用户输入,属性,缓存,数据结构等等,每天使用的微博,你可以把微博订阅想象成点击事件一样的数据流,我们可以监听这样的数据流,并作出相应的反应。一个数据流可以作为另一个数据流的输入,甚至多个数据流也可以作为另一个原创 2015-08-03 11:04:44 · 2629 阅读 · 0 评论 -
Android底部Tab页基于ViewPager的实现
在众多主流App中,包括QQ,微信等,为了和ios的UI保持统一,很多App使用的都是底部导航,当然在Android中也并不反对这种设计。这篇文章使用ViewPager实现这种效果。原创 2015-07-09 20:19:25 · 2775 阅读 · 0 评论 -
Android应用发布的准备——生成渠道包
我们需要使用一个变量标明该app的渠道,通常我们可以在manifest中的application节点下声明,如下。<meta-data android:name="CHANNEL_NAME" android:value="CHANNEL_VALUE" />然后将CHANNEL_VALUE的值替换成对应的渠道名。我们可以使用gradle的flavor替我们完成 productFlavo原创 2015-07-04 19:59:25 · 2937 阅读 · 0 评论 -
Android 各大网络请求库的比较及实战
自己学习android也有一段时间了,在实际开发中,频繁的接触网络请求,而网络请求的方式很多,最常见的那么几个也就那么几个。本篇文章对常见的网络请求库进行一个总结。HttpUrlConnection最开始学android的时候用的网络请求是HttpUrlConnection,当时很多东西还不知道,但是在android 2.2及以下版本中HttpUrlConnection存在着一些bug原创 2015-05-11 09:30:07 · 19747 阅读 · 20 评论 -
Android实现用户引导界面
首先看效果图,盗了超级课程表几张图 在众多应用中,几乎每一款应用都有自己的Splash用户引导界面,该界面在用户首次启动展示,之后不会显示,主要向用户展示新功能.分析主要使用ViewPager+Indicator实现主要是实现一个圆形指示器,这个圆形指示器继承LinearLayout,需要有一些属性可以自定义,比如指示器的颜色,大小,边距等这个指示器也可以自动滚动,比如应用在幻灯片展示的原创 2015-06-17 10:47:28 · 4806 阅读 · 5 评论 -
RecyclerView通用适配器的实现
分析我们需要在RecyclerView内部维持一个数据集合的引用需要实现Item的点击事件,包括短按和长按,并需要向外部提供设置监听器的方法这个适配器必须通用,所以应该是泛型的,并且ViewHolder也是通用的,可以采用SparseArray维持View的所有集合在RecyclerView内部需要实现数据的绑定(抽象方法,延迟到子类实现),监听器的绑定编写监听器分为短按事件和长按事件短原创 2015-06-13 10:12:35 · 3797 阅读 · 1 评论 -
Android apk增量升级
在服务器端,生成最新版与之前所有版本的差分包,为什么是所有版本,因为我们无法知道用户当前版本是什么版本在手机客户端更新程序时,下载差分包,使用已安装的旧版apk与这个差分包,合成为一个新版apk校验新合成的apk文件是否完整,检验合成版本的签名是否和已安装客户端一致,如一致则提示用户安装原创 2015-05-29 16:20:31 · 3734 阅读 · 2 评论 -
Android View绘制及实践
整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,该函数做的执行过程可简单概况为: - 判断是否需要重新计算视图大小(measure) - 判断是否重新需要安置视图的位置(layout) - 判断是否需要重绘(draw)原创 2015-05-03 19:32:44 · 1798 阅读 · 4 评论 -
使用通用适配器Base-adapter-helper
适配器写多了会有一种写到吐的感觉,今天来体验一下不用写适配器等待感觉,一般来说,我们写适配器都是重写getView方法,然后使用ViewHolder设计模式,在getView里进行数据绑定,写一次还好,写多了会感觉在不断做重复工作,那么有没有这么一个通用的适配器供我们使用,而不用写那么多次重复代码呢,答案是有的,见https://github.com/JoanZapata/base-adapter-原创 2015-04-05 12:40:46 · 2208 阅读 · 2 评论 -
android蓝牙4.0(BLE)开发之ibeacon初步
此文使用的ibeacon模块是april beacon,至于什么是ibeacon。本文不做解释,具体请自查。一个april beacon里携带的信息如下0201061AFF4C0002159069BDB88C11416BAC3F33468C2788A3044B0378C60C09417072696C426561636F6E051250002003020A0000000000000000000000具原创 2015-03-15 16:20:19 · 8803 阅读 · 2 评论 -
SharedPreferences的使用
有时候需要保存一些临时信息,但是用数据库又显得没必要,这时候SharedPreferences就派上用途了,它也是安卓数据持久化的一种方式。在实际应用中,比如应用的引导页,只有首次启动时才需要显示,之后启动完全没必要显示。再比如用户登录成功后,登录界面也没必要每次呈现给用户,取而代之的是直接进入主界面进行操作。而这些,都是可以使用SharedPreferences进行实现的,在使用它之前,我们对其原创 2015-01-01 18:51:10 · 1205 阅读 · 0 评论 -
2014最后一篇,记ExpandableListViewd的自定义
2014最后一篇,记ExpandableListViewd的自定义,整个流程下来可能二级项会出现不能点击的情况,这时候需要将二级项的布局文件里的所有Layout里增加属性,我这里只是增加了根layout,内部layout并没有增加,发现这样后也是可以点击的,于是内部layout就没有加这个属性了原创 2014-12-31 23:37:13 · 1311 阅读 · 0 评论 -
安卓数据持久化工具类总结
程序猿是最懒的生物,开发中从不重复造轮子,实际开发中数据吃就化是必然要处理的一个问题,先总结了几个除处理sqlite外的几个工具类,因为sqlite可以直接用orm,持久化数据有I/O,SharedPreference等等方式。外置储存卡package cn.edu.zafu.utils;import java.io.File;import java.io.FileInputStre原创 2015-03-05 08:34:58 · 2476 阅读 · 0 评论 -
Android Support库百分比布局
之前写过一篇屏幕适配的文章Android 屏幕适配最佳实践,里面提到了类似百分比布局的东西,但是该方法缺点很明显,就会增加很多无用的数据,导致apk包变大。而谷歌的support库中,增加了一个叫做percent库,该库在如图目录下,如果没有,请使用sdk manager更新至最新在使用前,我们先看下这个库有哪些类很显里面有一个FrameLayout布局的子类和RelativeLayout布局的子类原创 2015-06-30 12:10:45 · 8549 阅读 · 15 评论 -
Android SVG动画PathView源码解析与使用教程(API 14)
使用的是一个第三方库android-pathview主要是一个自定义View——PathView,跟所有自定义View一样,重写了三个构造方法。并且最终调用三个参数的构造方法,在里面获取自定义属性。原创 2015-08-11 11:27:57 · 6421 阅读 · 0 评论 -
Android新技术学习——阿里巴巴免Root无侵入AOP框架Dexposed
阿里巴巴无线事业部最近开源的Android平台下的无侵入运行期AOP框架Dexposed,该框架基于AOP思想,支持经典的AOP使用场景,可应用于日志记录,性能统计,安全控制,事务处理,异常处理等方面。 针对Android平台,Dexposed支持函数级别的在线热更新,例如对已经发布在应用市场上的宿主APK,当我们从crash统计平台上发现某个函数调用有bug,导致经常性crash,这时,可以原创 2015-08-07 15:46:30 · 3036 阅读 · 0 评论 -
android使用Font Awesome字体图标
Font Awesome的网址见http://fontawesome.dashgame.com/,Font Awesome提供可缩放的矢量图标,可以使用CSS所提供的所有特性对它们进行更改,包括:大小、颜色、阴影或者其它任何支持的效果。仅一个Font Awesome字库,就包含了与网页相关的所有形象图标。无论在任何尺寸下,可缩放的矢量图形都会为您呈现出完美的图标。Font Awesome的矢量图标,原创 2015-04-06 10:54:42 · 5386 阅读 · 0 评论 -
android v7兼容包RecyclerView的使用(四)——点击事件的不同方式处理
前三篇文章 android v7兼容包RecyclerView的使用(三)——布局管理器的使用 android v7兼容包RecyclerView的使用(二) android v7兼容包RecyclerView的使用(一) 介绍了RecyclerView的使用以及常见的相关类和布局管理器的灵活之处。写了这么多篇,还没涉及到用户交互,那么怎么处理点击事件呢。在RecyclerView中你会惊奇原创 2015-03-12 16:45:23 · 6656 阅读 · 4 评论 -
android v7兼容包RecyclerView的使用(二)
A flexible view for providing a limited window into a large data set大致意思就是:当有大量的数据显示在一个有限大小的窗口上时,RecyclerView就是解决这种情况的一个灵活的View。原创 2015-03-11 20:30:48 · 5349 阅读 · 0 评论 -
android sdk 代理
原创 2014-12-29 14:46:04 · 984 阅读 · 0 评论 -
static引发的RecyclerView上下滚动数据显示异常的bug
之前使用RecyclerView从来没有出现过这种问题。问题大致是这样的,当滑动RecyclerView时,某项item内的数据不断发生改变。如图所示: 从图中可以看到,中间的一项内容随着滚动在不断的发送变换。找了好久没找到原因,后来去stackoverflow上找了下,找到了类似的问题,但是依然没有解决方法,后来无意翻看以前的代码,想起来写ViewHolder的时候把成员变量声明成stati原创 2015-05-16 09:23:16 · 4585 阅读 · 1 评论 -
Andorid使用WiFi 连接adb进行调试
无奈数据线连接经常掉线。于是寻找wifi连接adb的方法,在github上搜索了一下客户端的源码后编译后运行了下,发现可以行得通,于是记录一下。 对应的安卓客户端源码在这wifi adb调试客户端编译后安装到手机上。手机需要ROOT权限,对于小米开发版用户请到安全中心打开root授权。打开后软件会自动打开对应端口的服务。这时候下方会提示adb connect *.*.*.*:5555在电脑上打开终原创 2015-07-17 09:51:08 · 3996 阅读 · 0 评论 -
Android(Java) 模拟登录知乎并抓取用户信息
前不久,看到一篇文章我用爬虫一天时间“偷了”知乎一百万用户,只为证明PHP是世界上最好的语言,该文章中使用的登录方式是直接复制cookie到代码中,这里呢,我不以爬信息为目的。只是简单的介绍使用java来进行模拟登录的基本过程,之前写过的文章android 项目实战——打造超级课程表一键提取课表功能其实就是模拟登录的范畴。再加上最近在知乎上看到很多人问关于超级课程表的实现,其实本质就是模拟登录,掌握原创 2015-08-10 11:49:59 · 11685 阅读 · 2 评论 -
V7兼容包——调色板Palette的使用
之前写过四篇文章是关于v7兼容包RecyclerView的使用 android v7兼容包RecyclerView的使用(四)——点击事件的不同方式处理 android v7兼容包RecyclerView的使用(三)——布局管理器的使用 android v7兼容包RecyclerView的使用(二) android v7兼容包RecyclerView的使用(一) 今天无意看到一个v7兼容包原创 2015-04-04 11:29:04 · 3552 阅读 · 0 评论 -
android v7兼容包RecyclerView的使用(一)
什么是RecyclerView?个人理解,它是一个在数据量大的时候,为了显示在界面上提供的灵活高效处理的控件。可以替代listview,gallery,gridview等控件。如何使用?本篇文章只是热热身,不会过多介绍细节。首先需要导入\sdk\extras\android\support\v7\recyclerview\libs\android-support-v7-recyclerview.ja原创 2015-03-10 22:41:38 · 10845 阅读 · 0 评论 -
android 自定义View过程解析
PS:本篇文章大多数翻译自github上一篇英文文章!总所周知,安卓UI是基于View(屏幕上的单一节点)和ViewGroup(屏幕上节点的集合),在android中有很多widgets和layouts可以用于创建UI界面,比如最常见的View有Button,TextView等等,而最常见的布局也有RelativeLayout,LinearLayout等。在一些应用中我们不得不自定义View去满足我原创 2015-03-09 16:51:15 · 1930 阅读 · 1 评论 -
64位Ubuntu Kylin14编译android内核
首先切换到android源码所在目录/media/lizhangqu/Android/android_2_3_31. 使用GIT工具下载,执行以下命令: mkdir kernel cd kernel git clone https://android.googlesource.com/kernel/goldfish.git 大约下载600M左右的东西后,在ke原创 2014-12-12 11:26:39 · 1830 阅读 · 0 评论 -
安卓ndk开发——找不到so文件的解决方法
看下日志,报了一个错误,大致原因是找不到so文件。该错误是在模拟器中运行产生的,真机运行并不会出现。 经询问,该原因是我启动的模拟器是x86结构的,涉及到底层的东西需要使用arm结构的模拟器,所以不是程序出了问题,而是模拟器的问题,新建一个arm结构的模拟器就不会报该错误了。然而在windows下启动一个arm结构的模拟器需要花费很长时间,所以现实中涉及到这方面的东西,还是使用真机把,当然还有另一原创 2015-03-13 13:08:38 · 4452 阅读 · 0 评论 -
Android使用Fragment打造万能页面切换框架
首先我们来回忆一下传统用Activity进行的页面切换,activity之间切换,首先需要新建intent对象,给该对象设置一些必须的参数,然后调用startActivity方法进行页面跳转。如果需要activity返回结果,则调用startActivityForResult方法,在onActivityResult方法中获得返回结果。此外,每一个要展示的activity需要在AndroidManif原创 2015-07-25 21:24:36 · 13844 阅读 · 7 评论 -
Android实战页面内容加载动画
前言文章开头来看一下本篇文章要实现的效果,如图左边是慕课网APP中的效果,右边是58同城APP中的加载动画。实现第一种动画之前用图形的混合模式和贝塞尔曲线实现过慕课网的下拉刷新的加载动画。见链接慕课网app下拉刷新图标填充效果的实现,而这种动画效果在app中其实也很常见,之前的那篇文章是自定义View绘制出来的,其实这个也可以用DrawableAnimation实现,这里,我们来实现一下,看看有多简原创 2015-06-18 19:57:27 · 5939 阅读 · 2 评论 -
android UI之ListView的自定义
首先还是上效果图,该ListView由四个控件组成,左边是一个图标,中间是两个TextView用于显示标题和描述,右边是一个TextView用于显示时间。编写每一项对应的实体类package cn.edu.zafu.myapplication;/** * Created by Administrator on 2015/1/1. */public class Item {原创 2015-01-01 13:46:15 · 1401 阅读 · 0 评论 -
repo sync出现“fatal: '../platform/abi/cpp.git' does not appear to be a git repository”的解决方案
1、在存放android系统源代码的目录(也就是执行repo sync命令的目录)下,有个.repo的隐藏目录,用ls -a可以查看的到,进入该目录:cd .repo;2、打开.repo目录下的manifest.xml文件(命令vim manifest.xml)并找到fetch属性,在我的文件中显示fetch="..",将fetch修改为 fetch="git://Android.gi转载 2014-12-07 15:08:34 · 3479 阅读 · 0 评论 -
获得 LayoutInflater 实例的三种方式
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。 具体作用:1、对于一个没有被载入或者想要动态载入的界面,都需要使用Layo转载 2014-09-16 16:52:48 · 1093 阅读 · 0 评论 -
Android开发中,那些让你觉得相见恨晚的方法、类或接口
本篇文章内容提取自知乎Android开发中,有哪些让你觉得相见恨晚的方法、类或接口?,其实有一部是JAVA的,但是在android开发中也算常见。大多数的函数自己还是见过的,这里记录一下备忘。同时呢,也推荐一个github项目,里面记录了自己日常开发中见过的比较有用的东西开发中常用的工具、链接Throwable类中的getStackTrace()方法,根据这个方法可以得到函数的逐层调用地址,其返回原创 2015-08-05 11:54:00 · 4899 阅读 · 4 评论 -
Android应用发布的准备——渠道注册与认证
今天早上申请了一个早上的渠道账号,这工作真是太繁琐,申请的是企业账号,需要营业执照等相关资料,如果申请个人的话估计需要身份证相关信息。下面贴出国内主流的几个渠道,不完全,但是基本上涵盖了大部分。360移动开放平台地址:http://dev.360.cn/ 豌豆荚地址:http://open.wandoujia.com/ 百度手机助手地址:http://app.baidu.com/原创 2015-07-03 20:59:32 · 3401 阅读 · 0 评论 -
Toolbar+DrawerLayout高仿网易新闻客户端
首先看效果图,网易新闻客户端的特点是双向侧滑,并且左上角的图标会随着菜单的侧滑会有动画效果。 我们采用Toolbar和DrawerLayout实现双向侧滑以及actionbar在菜单文件里先定义菜单<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.androi原创 2015-04-19 16:11:29 · 5139 阅读 · 4 评论 -
使用镜像站同步android sdk
1,打开sdk manager2,代理服务器填写ubuntu.buct.edu.cn或ubuntu.buct.cn或ubuntu.buct.edu.cn(IPv6),端口80,强制HTTP注:该代理并非正向代理也不是反向代理,所有代理请求将被重定向至该站镜像。 3,关闭SDK Manager4,单击Reload,选择需要的组件,即可安装原创 2015-04-02 09:34:38 · 2027 阅读 · 0 评论