Android 技术研究
文章平均质量分 70
Birds2018
一生只java
展开
-
Android开源项目 Universal imageloader 源码研究之项目框架
Android开源项目 Universal imageloader 源码研究之项目框架本文主要了解Universal imageloader 源码结构 大部分都是UML图形方式 观察项目框架。基本客户化接口基本UML类图基本客户化接口初始化配置 ImageLoaderConfiguration.Builder config = new ImageLoaderConfiguratio原创 2015-12-30 10:47:11 · 985 阅读 · 0 评论 -
Android使用Gradle进行打包混淆,包括依赖Library
下面的脚本100%能用,只要你的版本和路径配置正确环境:Eclipse Windows 7Gradle:2.3Android项目里面包含了多个Library主项目配置:settings.gradle 文件配置library库include 'lib_01'include 'lib_02'project(':lib_01').projectDir = new原创 2015-04-15 09:30:55 · 19058 阅读 · 0 评论 -
Android 5.0 CardView 应用
CardView 属于Support v7 里面的新的Widget. 扩展于FrameLayout,UI显示主要包括1.边框圆角2.有阴影Shadow用来突出个性,比如展览,相册等。主布局<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tool原创 2015-04-22 17:21:42 · 34136 阅读 · 2 评论 -
AsyncHttpClient 源码分析
开源的AsyncHttp是基于Apache HTTP Client包装的一个库,比较简单,回调进行获取数据,不用自己处理线程和实例化Handler上一篇写了个 AsyncHttpClient 获取图片和网页数据演示 简单用法AsyncHttpClient.java 是暴露的接口,最主要的就是Post和Get 2种,还有其他的HTTP请求方式 比如还有Delete,Patch操作原创 2015-04-01 11:00:21 · 5530 阅读 · 0 评论 -
开源Android-PullToRefresh下拉刷新源码分析
PullToRefresh 这个库用的是非常至多,github 今天主要分析一下源码实现.我们通过ListView的下拉刷新进行分析,其它的类似。整个下拉刷新 父View是LinearLayout, 在LinearLayout添加了Header View ,Footer View,和ListViewPullToRefreshBase 是父类 扩展了 LinearLayout水平布局原创 2015-04-02 14:48:07 · 7622 阅读 · 1 评论 -
Android OpenGL ES 应用(二) 纹理
上一篇讲了基础入门 OpenGL (一) ,这一次主要学习OpenGL 纹理基本学习总结要是做复杂的OpenGL应用程序,一定会用到纹理技术。纹理说白了就是把图片或者视频图像绘制到OpenGL空间中。因此纹理也有坐标系,称ST坐标,或者UV上面是纹理坐标空间,但没有固定的方向下面演示加载一张image作为纹理贴图。public class Tex原创 2015-03-17 14:03:08 · 2383 阅读 · 0 评论 -
AsyncHttpClient 获取图片和网页数据演示
AsyncHttpClient 极其好用,采用回调的方式并且是异步的,UI线程已经封装好。 https://github.com/loopj/android-async-http这个例子较为简单。先看运行结果点击按钮 从网络上获取图片和baidu首页显示出来.项目是直接用的源码,为了研究源码使用的。public class HTT原创 2015-03-17 16:21:38 · 5069 阅读 · 0 评论 -
Android UDP广播包抓取
只是贴代码,以前写的突然忘记了. private WifiManager.MulticastLock multicastLock; public void init(Context context){ WifiManager wifiManager = (WifiManager) context.getSystemService(Conte原创 2015-01-04 17:45:56 · 3466 阅读 · 0 评论 -
Android动画应用总结1
本人其实比较懒,不太喜欢写文字,喜欢写代码比较多,不过今天有点时间还是写一点.Android里面的基本动画看起来还是比较简单的手机的坐标系知道坐标系很重要,这样容易设置起始点和结束点动画配置都放在res/anim目录下,直接写代码也是OK首先看渐变,就是设置物体从透明到完全显示的一个渐变效果 <alpha andro原创 2014-12-12 11:34:29 · 635 阅读 · 0 评论 -
Google官方提供的有用的Android范例程序,值得学习的新技术
原文,Google官方blog。 http://android-developers.blogspot.sg/2015/04/new-android-code-samples.html这里有一些例子,涵盖了Android穿戴,NFC ,截屏 ,都已经提交到Google样列仓库的Github上。 https://github.com/googlesamples这有些代码列子。翻译 2015-04-24 15:09:30 · 11488 阅读 · 1 评论 -
Android 5.0 RecyclerView 使用
RecyclerView 是5.0开始出来的新的ListView,主要是提高了性能,显示方式也多样化。提高了性能,老版本中我们优化view都是通过定义一个Holder来实行的,现在的RecyclerView就封装了一个Holder支持水平滚动和垂直滚动2种列表还支持Grid格子布局和乱序的布局ICON + TEXTpublic class Item { public int imgId;原创 2015-04-20 22:26:21 · 3324 阅读 · 1 评论 -
使用EventBus进行Fragment和Activity通信
使用EventBus进行Fragment和Activity通信本文介绍EventBus的基本使用,以及用于Fragment和Activity之间通信。 github地址: https://github.com/greenrobot/EventBus 版本是 EventBus-2.4.0 release EventBus是基于订阅和发布的一种通信机制,使用流程如下:原创 2015-05-11 16:23:44 · 21460 阅读 · 2 评论 -
NDK Java C 数据类型转换
这次主要学习 NDK 类型转换java数据类型和JNI底层的C类型进行转换,这个也不难1. java 字符串转C字符串2.java 数组转C数组3.原创 2013-10-27 17:40:33 · 1593 阅读 · 0 评论 -
NDK Java JNI调用
这次主要学习NDK C调用JAVA 类,这种做法可以作为回调,比如JNI层获取网络数据 然后回调JAVA层 把获取的网络数据传给应用层并显示。创建一个简单的User类,和 SimpleAction.在JNI层实例化一个User类,并附上值,传个SimpleAction类,然后JNI层调用doLogin方法 打印出User类的信息。 public class User { pu原创 2013-11-05 10:52:44 · 1308 阅读 · 0 评论 -
NDK 入门
初步使用NDK在windows平台,需要下载Cygwin工具才能编译C文件,长期写JAVA,突然写C程序感觉挺爽的,O(∩_∩)O~然后到Android官方下载Android NDK. 首先创建一个简单Android Project编写一个JNI.java类,主要放置native方法 package com.birds.android.ndk;/** * @aut原创 2013-10-25 22:32:11 · 1092 阅读 · 0 评论 -
ViewDragHelper实现相册图片查看
ViewDragHelper实现图片滑动查看ViewDragHelper是SupportV4提供的实用工具类,主要用于多视图下View的拖拽滑动效果,比如侧滑栏,抽屉都能实现。程序员无需再去处理繁琐的onTouch事件问题。本文主要实现一个简单的图片滑动查看效果实现过程原创 2015-09-11 20:56:21 · 1139 阅读 · 0 评论 -
Android自定义View绘制闹钟
Android自定义View绘制闹钟本文简单实现了一个闹钟 效果如下: 代码如下:package com.gaofeng.mobile.clock_demo;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.gr原创 2015-08-29 17:16:21 · 2366 阅读 · 1 评论 -
Android DrawerLayout 抽屉
Android DrawerLayout 抽屉DrawerLayout 在supportV4 Lib中,类似开源slidemenu一样,DrawerLayout父类为ViewGroup,自定义组件基本都是扩展这个类。 android.support.v4.widget.DrawerLayout下面是个简单的用法演示。点左上角的按钮 打开抽屉菜单。点击对应的ITEM 切换对应的内容,内容显示使用Fr原创 2015-06-03 16:19:18 · 1654 阅读 · 1 评论 -
Android LoaderCallbacks
在Fragment里面使用LoaderCallbacks接口 异步HTTP获取图片public abstract class AbstractLoader<D> extends AsyncTaskLoader<D> { public AbstractLoader(Context context) { super(context); } @Override原创 2015-06-01 15:06:52 · 2292 阅读 · 0 评论 -
Android App框架设计之编写基类BaseActivity
Android App框架设计之编写基类BaseActivity编写基类BaseActivity - OOP里面子类里面能够共享父类的方法,提高代码的可复用性 - 基类的编写要根据实际项目的情况,有的可能很简单 比如只是显示 “关于” 信息, 业务功能非常少 你可以不用继承基类进行扩展BaseActivity继承Activity 还是 FragmentActivity 还是其它? 也是根据你原创 2015-05-20 18:16:27 · 41442 阅读 · 12 评论 -
Android roboguice 开源框架使用
Android roboguice 应用开源的roboguice是一个依赖注入框架,如果你用过Spring 应该知道其好处。 减少程序员的负担,代码变的更加简洁。地址:https://github.com/roboguice/roboguice工具用的是Android Studio 因为Gradle可以自动添加第三方库。Gradle部分内容:dependencies { compile原创 2015-05-13 20:40:55 · 2758 阅读 · 0 评论 -
序列化和反序列化技术
序列化和反序列化技术转载: http://www.infoq.com/cn/articles/serialization-and-deserialization简介文章作者服务于美团推荐与个性化组,该组致力于为美团用户提供每天billion级别的高质量个性化推荐以及排序服务。从Terabyte级别的用户行为数据,到Gigabyte级别的Deal/Poi数据;从对转载 2015-05-12 17:41:11 · 1140 阅读 · 0 评论 -
SurfaceFlinger研究(一)
2014年的时候就研究过SurfaceFlinger 阅读源码多次 也没有搞得很清楚,这次帖到博客里面 做个记录.SurfaceFlinger 是Android系统里面最复杂的模块,算是个框架. 今天主要把握运行流程,从ActivtyThread.java 运行Activity 然后到Activity setContentView 的执行路线.原创 2015-01-15 17:29:02 · 1102 阅读 · 0 评论 -
AsyncTask测试多任务
本人进行过模拟测试,发现AsyncTask并不适合多任务,以及长期的异步任务,因为每次只能运行一个AsyncTask,如果运行多个其它任务将会等待下面通过一个代码例子和日志打印得到证实。原创 2014-12-17 13:34:35 · 7535 阅读 · 5 评论 -
NDK 5 使用POSIX线程
Java中使用线程特别简单,实现Runnable接口 或者 继承Thread.NDK中使用线程可以在Activity中直接调用java线程,也可以通过JNI启动线程,这个线程源于POSIX中的线程库。需要使用POSIX中pthread头文件如果启动了Posix线程,是无法与Android Java层交互的,主要是因为POSIX线程中无法直接调用JNIEnv 。原创 2014-01-05 01:30:02 · 4228 阅读 · 0 评论 -
NDK 4 使用Socket与服务器通信
Android是基于Linux内核的,NDK提供的头文件基本都是 posix 协议的。 如果熟悉Linux环境下的开发,其实做NDK会非常容易。下面主要演示 通过JNI Socket获取服务器响应数据 并显示在UI上面。LINUX下的C 之前接触过,不过长时间不用 又生疏了。开发工具这次使用的是:IntelliJ Community IDE比eclipse稍微只能不少。大家原创 2013-12-03 14:53:21 · 10131 阅读 · 1 评论 -
Android 异步获取网络图片Bitmap资源
这里主要是为了把获取图片的代码单独出来和UI分开,方便扩展。 public interface Callback { public void onSuccess(T obj); public void onError(String error);}线程执行结束后,回调接口,成功后调用onSuccess方法T为通用类型参数,错误调用onError public c原创 2013-10-25 21:18:58 · 5366 阅读 · 0 评论 -
使用 Service 后台处理版本更新 并提示.
这里版本检测放在了 Service中处理,然后通过注册的 广播 来提示。public class AppUpdaterService extends Service { public IBinder onBind(Intent arg0) { return null; } public void onCreate() { super.onCreate(); new Thread(原创 2013-03-21 18:02:05 · 1067 阅读 · 0 评论 -
使用LinearLayout,ScrollView自定义ListView,
如果一个界面里面有多个ListView,还需要全屏能滚动,这样ListView无法和ScrollView 同时使用,有冲突,解决起来好像比较麻烦。使用LinearLayout 和 ScrollView自定义ListView。 public class DataModel { public DataModel(String name,String grade,Strin原创 2013-03-20 17:14:40 · 4326 阅读 · 0 评论 -
Android Toast 简单封装
public final class UIToast { private static Context context = GoldApp.goldAPP.getApplicationContext(); public static void showToastLong(String msg) { showToast(context, msg, Toast.LENGTH_LONG);原创 2013-03-20 15:41:39 · 2426 阅读 · 1 评论 -
布局中的gravity值用法
Android中常用的布局就是 LinearLayout 和 RelativeLayout开发应用时,建议使用相对布局,因为能够更好的适应多屏幕尺寸,可以方便使UI控件居中,置顶等。 布局中常用到gravity值。 <LinearLayout xmlns原创 2011-09-07 09:39:38 · 2286 阅读 · 0 评论 -
Android中使用Apache common ftp进行下载文件
Android中使用Apache common ftp进行下载文件原创 2014-07-02 10:23:31 · 12020 阅读 · 1 评论 -
Android使用Messenger进行Service IPC通信分析
如果想要进行IPC通信,一般写一个AIDL接口,再写一个Service子类,然后实现AIDL接口 当做IBinder返回给Activity界面层。如果不想写AIDL接口文件,只是单I线程中与Service进行通信 我们可以用Android写好的Messenger类来处理,一样能将消息传递给Service进行通信。先写上基本代码:public class MyService原创 2014-09-21 15:26:37 · 7035 阅读 · 7 评论 -
Android系统启动研究1
Android系统较为庞大,要搞清楚系统运行原理需要长期努力。系统启动部分看了几遍但没有总结,今天简单总结一下。Android首先重点是启动zygote进程,这个进程来源于init.rc的读取,zygote进程主要用于孵化新的app程序,还包括启动android大量的服务SystemService原创 2014-12-21 18:03:37 · 999 阅读 · 0 评论 -
AsyncTask下载图片
最近在看很早以前写过的代码,把一些东西回顾一下。本文先回顾一下AsyncTask的基本使用. AsyncTask说简单点就是 开启一个线程,并且把结果提交给ui线程。Thread+Handler,不过里面做了一些封装 减轻了我们维护线程的麻烦原创 2014-12-16 22:33:59 · 1046 阅读 · 0 评论 -
Android Launcher源码研究(一) 基本结构
Launcher 是 Android手机开启后第一个运行的 应用程序,也叫Home,或者叫做手机桌面。本文介绍的是4.1源码的launcher2 app. Android41\packages\apps\Launcher2首先找到主Activity,打开AndroidManifest.xml 入口是 com.android.lau原创 2014-11-20 17:36:13 · 2273 阅读 · 0 评论 -
Android Launcher源码研究(二) 加载app流程1
今天主要分析Android Launcher源码中的一些重要类之间的关系,基本的加载app信息流程.原创 2014-11-21 17:13:51 · 4868 阅读 · 0 评论 -
Android中自定义ViewGroup实现表格展示学员信息
本文通过扩展Android ViewGroup实现表格 可用于课程信息,学生信息视图展示,实现表格方式可以用布局拼凑 也可以自定义ViewGroup方式实现。原创 2014-11-22 17:45:23 · 6811 阅读 · 1 评论 -
Android Launcher源码研究(三) 加载app流程2
今天继续分析Launcher源码,首先Launcher实现了LauncherModel.Callbacks接口,APP信息数据加载成功后 ,回调接口把app信息显示到Launcher的 workspace界面上,这个过程代码里面称为bind.原创 2014-11-26 14:52:41 · 2868 阅读 · 1 评论 -
Android OpenGL ES 应用(一)
Android OpenGL ES 基本应用,画2个三角形组成一个正方形原创 2014-11-01 19:55:06 · 3210 阅读 · 0 评论