Android 开发
文章平均质量分 83
Gjson
it's me
展开
-
Speed Android Studio的Gradle Build
写在前面的freeline这个阿里系的,在as2.0之后貌似已不需要了。。。。。。。。在利用Android Studio做项目时,发现随着项目内资源的逐渐增多(或者项目创建时间太过久远,而又未经常打开),Android Studio的build速度也越来越慢。最终发现通过以下方法可以加快Gradle的构建速度。在以下Gradle目录创建gradle.properties文件原创 2016-11-17 14:05:32 · 742 阅读 · 0 评论 -
如何获取Manifest中<meta-data>的值
如何获取Android Manifest中的值在AndroidManifest.xml中,元素可以作为子元素,被包含在 、、、元素中,不同的父元素,在应用时读取的方法也不同。 1:在application应用元素。 xml代码段: java代码段: Applicat原创 2015-08-17 10:44:45 · 2436 阅读 · 0 评论 -
Android-IM架构设计
###1. 架构总览###2. 模块介绍####2.1 协议封装与任务流程#####1) 协议与任务的封装 a. 协议有协议头(协议头因为格式相同,被抽象出来)和协议体组成,协议有两类:请求协议(request)和回复协议(response); b. 任务(action)由请求协议、回复协议和任务回调(callback)组成; c. callback转载 2015-07-22 20:20:50 · 1863 阅读 · 1 评论 -
android 编码规范
Android编码规范Author Gjson 一、命名规范 1. 包命名 2. 类和接口命名 3. 方法的命名 4. 变量的命名 5. 常量的命名 6. 异常的命名 7. 布局的命名 8. ID的命名 9. 图片的命名 10. 其他资源命名 二、注释规范 1. 文件注释 2. 类注释 3. 方法注释原创 2015-07-20 17:22:36 · 655 阅读 · 0 评论 -
Java的环境变量配置:
javac 主要是编译用的 、而java主要是调试用的。 下面我为大家介绍Java的环境变量配置:Java的环境变量配置:(两种方法任选一种皆可)方法一:依次点击:“我的电脑”-(右键)“属性”-“高级”-“环境变量”,弹出Windows的“环境变量”配置卡。在“系统变量”栏下执行三项操作:①新建“Classpath”(如果已有,则直接编辑),设置其值为 .;JDK原创 2012-11-19 17:26:26 · 462 阅读 · 0 评论 -
addToBackStack使用和Fragment执行流程
最近做项目,经常用到Fragment,在使用Fragment的时候我们一般会这样写: FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.content_view, fragment, fragme原创 2014-11-25 18:36:40 · 694 阅读 · 0 评论 -
关于 java InputStream读取数据问题
1. 关于InputStream.read() 在从数据流里读取数据时,为图简单,经常用InputStream.read()方法。这个方法是从流里每次只读取读取一个字节,效率会非常低。 更好的方法是用InputStream.read(byte[] b)或者InputStream.read(byte[] b,int off,int len)方法,一次读取多个字节。2.原创 2014-12-08 09:42:11 · 987 阅读 · 0 评论 -
android RelativeLayout 各个属性讲解
android:layout_above="@id/xxx" --将控件置于给定ID控件之上 android:layout_below="@id/xxx" --将控件置于给定ID控件之下 android:layout_toLeftOf="@id/xxx" --将控件的右边缘和给定ID控件的左边缘对齐 android:layout_toRightOf="@id/xxx" --将控件的左边原创 2015-03-10 15:00:55 · 460 阅读 · 0 评论 -
Android推送
在开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手机客户端即时推送各种通知消息,iPhone上已经有了比较简单的和完美的推送通知解决方案,可是Android平台上实现起来却相对比较麻烦,最近利用几天的时间对Android的推送通知服务进行初步的研究。在Android手机平台上,Google提供了C2DM(Cloudto Device Messaging)服务,起初我就原创 2015-03-12 17:26:51 · 503 阅读 · 0 评论 -
android ui布局之 merge include ViewStub
在布局优化中,Androi的官方提到了这三种布局、、,并介绍了这三种布局各有的优势,下面也是简单说一下他们的优势,以及怎么使用,记下来权当做笔记。1、布局重用标签能够重用布局文件,简单的使用如下:[html] view plaincopyprint?LinearLayout xmlns:android="h原创 2015-04-07 13:36:21 · 413 阅读 · 0 评论 -
onNewIntent何时会被执行 以及 Android任务和返回栈解析
onNewIntent何时会被执行:一、其他应用发Intent,执行下列方法: I/@@@philn(12410): onCreate I/@@@philn(12410): onStart I/@@@philn(12410): onResume 发Intent的方法: Uri uri = Uri.parse("philn://blog.163.com"); Intent it = new原创 2015-06-10 10:14:32 · 3368 阅读 · 0 评论 -
android devlop:adb如何使用 &&& 消除工程导入时的“Invalid project description”错误
将别人的工程(如PL2303HXDSimpleTest ),放到workspace下(或者之前成功导入过,但已经被删除掉),然后,在执行“File-Import-Android-Existing Android Code Into Workspace"时,总报如下的错:Invalid project description.E:\adt-bundle-windows-x86-20130原创 2014-06-29 18:43:41 · 1024 阅读 · 0 评论 -
android listview addheadview
自定义listview以及自定义的item、adapter。现在把其中需要注意的地方记录下来:1、item内如果有button等控件时,在监听listview的onitemclick事件时,焦点会被item内的button、imagebutton等控件抢走,从而导致在listview设置了onitemclick事件后不会被触发。解决方法是在初始化item的时候屏蔽掉其内部button等控件原创 2014-12-15 17:42:52 · 1538 阅读 · 0 评论 -
互联网推送服务原理:长连接+心跳机制(MQTT协议)
在将这个之前我们先来了解一下 mqtt,MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。MQTT协议是为大量计算能力有限,且工作在低带宽、不可原创 2015-04-01 16:59:24 · 2911 阅读 · 0 评论 -
Android 项目代码行统计方法
介绍如何在Eclipse统计代码行数, studio更容易;使用Eclipse可以方便的统计工程或文件的代码行数,方法如下: 1.点击要统计的项目或许文件夹,在菜单栏点击Search,然后点击File... 2.选中正则表达式(Regular expression),并在搜索文本框输入\n 3.在文件名中输入*或*.java 4.在范围里选中En原创 2015-11-03 11:42:47 · 1756 阅读 · 0 评论 -
Android 动态加载 APK
近期由于项目过大 造成id 65536的问题,导致编译通不过(Android对一个应用中的方法个数有限制);先看一个开源框架:DynamicLoadApk :1. 功能介绍1.1 简介DynamicLoadApk 是一个开源的 Android 插件化框架。插件化的优点包括:(1) 模块解耦,(2) 动态升级,(3) 高效并行开发(编译速度原创 2015-10-23 17:59:09 · 2180 阅读 · 0 评论 -
android开源项目 Google code
1. ZXing http://code.google.com/p/zxing/ 条形码、二维码2. K-9 Mail http://code.google.com/p/k9mail/ 邮件客户端3. Sipdr原创 2015-11-13 16:39:10 · 1521 阅读 · 0 评论 -
Android的webview加载本地html、assert内html和网络URL&&& JS与移动端webview的相互交互
Android的webview加载本地html、assert内html和网络URL&&& JS与移动端webview的相互交互原创 2015-01-22 13:10:04 · 5308 阅读 · 0 评论 -
Android网络请求框架—OKHttp 源码解析
总体流程整个流程是,通过OkHttpClient将构建的Request转换为Call,然后在RealCall中进行异步或同步任务,最后通过一些的拦截器interceptor发出网络请求和得到返回的response。将流程大概是这么个流程,大家可以有个大概的印象,继续向下看:OkHttp流程图.jpg为了让大家有更深的印象,我准备追踪一个GET原创 2016-08-29 11:26:52 · 2342 阅读 · 0 评论 -
scanning for model in Activeandroid—TableInfo TypeSerializer
TableInfo在构造时会传入一个Class type对象作为参数:调用type.getAnnotation(Table.class) 得到一个Table注解类,里面描述了该Model对应的DB的table的信息如果确实得到了一个Table注解对象,那么会将该对象的name/id保存在mTableName/mIdName中.如果没有得到对应的Table注解对象(即该Model类并没有加t原创 2016-08-02 14:24:34 · 716 阅读 · 0 评论 -
Android—launcher 启动流程
Launcher应用程序在启动过程中会通过PackageManagerService服务请求查询系统所有的已安装应用的包名,图标和应用名称等信息,然后填充到Launcher中的Adapter中,这样点击某一项应用图标的时候就可以根据该图标的包名和启动Activity的类名初始化Intent对象,然后调用startActivity(Intent)启动相关的应用程序了。其实androi原创 2016-08-05 10:46:59 · 764 阅读 · 0 评论 -
android--动态加载、插件化
何为动态加载、插件化?需求驱动随着业务发展需要和无线部门的拆分,各业务产品模块归属到各业务BU,原有无线App开发团队被分为基础框架、业务A、业务B、业务C等多个开发团队,从此App的开发和发布进入了一个全新模式。在这种模式下,开发沟通成本大大提高,之前的协作模式难以为继,需要新的开发模式和技术解决需求问题。另一方面,从技术上来说65535方法数问题。旧方案是把所有第三原创 2016-07-21 10:48:43 · 8458 阅读 · 1 评论 -
android—BroadcastReceiver 中的Context理解
Receiver的官方文档:关键在于如何理解,广播运行时的上下文环境。对于Receiver的注册,分为两种情况,第一种,在Manifest中注册,如下 receiver android:name=".MyReceiver"> intent-filter> action android:name="com.zh原创 2016-07-26 18:48:15 · 9490 阅读 · 0 评论 -
Imageloader在listview/gridview中scroll滚动时图片重载的问题及解决
在已经允许内存,存储卡缓存的前提下,当一个图片被请求display时,首先要判断图片是否缓存在内存中,如果false则尝试从存储卡读取,如果依然不存在最后才从网络地址下载从内存读取的速度最快,存储卡次之,在我们滚动listview的时候,如果是从内存加载图片则会显得非常流畅,如果是存储卡就会先出现载入中图片然后再显示实际图片我们通常认为已经读过一次的图片自然将会加入内存缓存中,那么原创 2016-05-26 19:27:25 · 951 阅读 · 0 评论 -
java ThreadPoolExecutor
ThreadPoolExecutor机制 一、概述 1、ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现,以内部线程池的形式对外提供管理任务执行,线程调度,线程池管理等等服务; 2、Executors方法提供的线程服务,都是通过参数设置来实现不同的线程池机制。 3、先来了解其线程池管理的机制,有助于正确使用,避免错误使用导致严重故障原创 2016-04-29 10:55:49 · 915 阅读 · 0 评论 -
Android POI 百度地图——周边检索
周边检索:根据检索词、中心点地理坐标和半径与发起周边检索。实现场景:查找以上海市浦东新区为中心,半径为1000米内所有的“浦东发展银行”(搜周边)。实现步骤:一、前提条件: 搭建百度地图开发环境; 地图引擎管理对象和显示地图的View对象,都已创建并初始化; MapView对象的相关属性已设置,生命周期函数也原创 2016-04-25 14:46:28 · 2725 阅读 · 0 评论 -
Android 进程间通信的几种实现方式
一、概述 由于应用程序之间不能共享内存。在不同应用程序之间交互数据(跨进程通讯),在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件:Activity、Content Provider、Broadcast和Service。其中Activity可以跨进程调用其他应用程序的Activity;Content Provid原创 2016-01-14 09:53:41 · 36429 阅读 · 2 评论 -
Android 判断应用处于前后台
1、通过RunningTaskInfo类判断(需要额外权限):代码如下:/** *判断当前应用程序处于前台还是后台 */ public static boolean isApplicationBroughtToBackground(final Context context) { ActivityManager am = (A原创 2016-01-21 14:05:24 · 1745 阅读 · 0 评论 -
java 接口和抽象
Java接口和Java抽象类最大的一个区别,就在于Java抽象类可以提供某些方法的部分实现,而Java接口不可以(就是interface中只能定义方法,而不能有方法的实现,而在abstract class中则可以既有方法的具体实现,又有没有具体实现的抽象方法),这大概就是Java抽象类唯一的优点吧,但这个优点非常有用。如果向一个抽象类里加入一个新的具体方法时,那么它所有的子类都一下子都得到了这个新原创 2015-12-15 15:53:15 · 533 阅读 · 0 评论 -
String StringBuffer StringBuilder
关于String,StringBuffer,StringBuilder的东西,现在整理一下。String是不可变的,StringBuffer是可变的;StringBuffer是线程安全的,StringBuilder是非线程安全的。 因而在大部分情况下字符串的拼接速度为:StringBuilder>StringBuffer>String 解释如下: 因为String是不可变的原创 2015-12-15 15:10:59 · 581 阅读 · 0 评论 -
Android EditText属性
Android EditText属性 作者:kezz来源:eoe发布时间:2011/8/1 11:06:33 EditText继承关系:View-->TextView-->EditText EditText的属性很多,这里介绍几个:android:hint="请输入数字!"//设置显示在空间上的提示信息android:numeric="integer"//原创 2015-04-22 10:16:40 · 442 阅读 · 0 评论 -
Android屏幕density, dip ,px ,密度,分辨率等相关概念
1、几个术语VGA、HVGA、QVGA、WVGA、WQVGA这些术语都是指屏幕的分辨率。VGA:Video Graphics Array,即:显示绘图矩阵,相当于640×480 像素;HVGA:Half-size VGA;即:VGA的一半,分辨率为480×320;QVGA:Quarter VGA;即:VGA的四分之一,分辨率为320×240;WVGA:Wide Video原创 2015-05-11 10:00:04 · 862 阅读 · 0 评论 -
android 移动开发过程中一些点点滴滴
convertView 在API中的解释是The old view to reuse, if possible,第一次getView时还没有convertView,这时你便创建了一个新的view,下次getView时就有这个“旧的”convertView了 setTag的作用才是把查找的view通过ViewHolder封装好缓存起来方便多次重用,当需要时可以getTag拿出来原创 2014-09-18 10:52:34 · 619 阅读 · 0 评论 -
android开发过程中的一些杂谈
convertView 在API中的解释是The old view to reuse, if possible,第一次getView时还没有convertView,这时你便创建了一个新的view,下次getView时就有这个“旧的”convertView了 setTag的作用才是把查找的view通过ViewHolder封装好缓存起来方便多次重用,当需要时可以getTag拿出来原创 2014-10-24 11:24:30 · 512 阅读 · 0 评论 -
android view 中 MotionEvent 及其事件处理
MotionEvent对象当用户触摸屏幕时将创建一个MotionEvent对象。MotionEvent包含关于发生触摸的位置和时间等细节信息。MotionEvent对象被传递到程序中合适的方法比如View对象的onTouchEvent()方法中。在这些方法中我们可以分析MotionEvent对象那个,以决定要执行的操作。MotionEvent对象是与用户触摸相关的时间序列,该序列从原创 2015-01-12 19:35:06 · 1595 阅读 · 0 评论 -
android UI shape和selector和layer-list 详解
和在Android UI设计中经常用到。比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到和。可以这样说,和在美化控件中的作用是至关重要。在看这篇文章之前,可以看下这个小例子:(http://blog.csdn.net/brokge/article/details/41318117)1.Shape简介作用:XML中定义的几何形状原创 2015-01-23 15:23:10 · 704 阅读 · 0 评论 -
Android——高级界面组件
1、自动完成文本框(AutoCompleteTextView)AutoCompleteTextView从EditText派生出来,实际上也是一个文本编辑框,但它比普通编辑框多一个功能:当用户输入一个字符后,自动完成文本框会显示一个下拉菜单,供用户从中选择,当用户选择某个菜单项之后,AutoCompleteTextView按用户选择自动填写该文本框。使用AutoCompleteTextV原创 2015-02-03 16:56:26 · 1153 阅读 · 1 评论 -
android 启动第三方程序的代码&&&&android 安装卸载原理 以及activity 根据包名和应用名启动应用程序
首先apk安装涉及几个目录,system/app (系统自带的应用程序,无法删除)、data/app(用户程序安装的目录,有删除权限。安装时把apk文件复制到此目录)、data/data(存放应用程序的数据)、Data/dalvik-cache(将apk中的dex文件安装到dalvik-cache目录下(dex文件是dalvik虚拟机的可执行文件,其大小约为原始apk文件大小的四分之一)) 。原创 2015-04-09 10:04:39 · 1427 阅读 · 0 评论 -
android View 绘制流程 和 事件传递
View 绘制流程本文为 Android 开源项目源码解析 公共技术点中的 View 绘制流程 部分分析者:lightSkyView 绘制机制1. View 树的绘图流程当 Activity 接收到焦点的时候,它会被请求绘制布局,该请求由Android framework 处理.绘制是从根节点开始,对布局树进行 measure 和 draw 。整个 View原创 2015-05-20 10:37:45 · 1354 阅读 · 0 评论 -
JAVA 依赖注入 android
1. 依赖如果在 Class A 中,有 Class B 的实例,则称 Class A 对 Class B 有一个依赖。例如下面类 Human 中用到一个 Father 对象,我们就说类 Human 对类 Father 有一个依赖。public class Human { ... Father father; ... public Human() {原创 2015-05-20 10:32:50 · 987 阅读 · 0 评论