自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 资源 (7)
  • 收藏
  • 关注

原创 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 956

原创 Speed Android Studio的Gradle Build

写在前面的freeline这个阿里系的,在as2.0之后貌似已不需要了。。。。。。。。在利用Android Studio做项目时,发现随着项目内资源的逐渐增多(或者项目创建时间太过久远,而又未经常打开),Android Studio的build速度也越来越慢。最终发现通过以下方法可以加快Gradle的构建速度。在以下Gradle目录创建gradle.properties文件

2016-11-17 14:05:32 707

原创 android反编译-smali语法

前言前面我们有说过android反编译的工具,如何进行反编译。反编译后可以得到jar或者得到smali文件。Android采用的是java语言进行开发,但是Android系统有自己的虚拟机Dalvik,代码编译最终不是采用的java的class,而是使用的smali。我们反编译得到的代码,jar的话可能很多地方无法正确的解释出来,如果我们反编译的是smali则可以正确的理解程序的意思。因此

2016-11-09 19:23:56 991

原创 Android网络请求框架—OKHttp 源码解析

总体流程整个流程是,通过OkHttpClient将构建的Request转换为Call,然后在RealCall中进行异步或同步任务,最后通过一些的拦截器interceptor发出网络请求和得到返回的response。将流程大概是这么个流程,大家可以有个大概的印象,继续向下看:OkHttp流程图.jpg为了让大家有更深的印象,我准备追踪一个GET

2016-08-29 11:26:52 2322

原创 android textview自动换行、排列错乱问题及解决

今天忽然发现android项目中的文字排版参差不齐的情况非常严重,不得不想办法解决一下。经过研究之后,终于找到了textview自动换行导致混乱的原这个问题是由于:半角字符与全角字符混乱所致!一般情况下,我们输入的数字、字母以及英文标点都是半角,所以占位无法确定。它们与汉字的占位大大的不同,由于这个原因,导致很多文字的排版都是参差不齐的。对此我找到了两种办法可以解决这个问题: 1. 将te

2016-08-08 14:36:48 8050

原创 Android—launcher 启动流程

Launcher应用程序在启动过程中会通过PackageManagerService服务请求查询系统所有的已安装应用的包名,图标和应用名称等信息,然后填充到Launcher中的Adapter中,这样点击某一项应用图标的时候就可以根据该图标的包名和启动Activity的类名初始化Intent对象,然后调用startActivity(Intent)启动相关的应用程序了。其实androi

2016-08-05 10:46:59 744

原创 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 703

原创 android—BroadcastReceiver 中的Context理解

Receiver的官方文档:关键在于如何理解,广播运行时的上下文环境。对于Receiver的注册,分为两种情况,第一种,在Manifest中注册,如下 receiver android:name=".MyReceiver"> intent-filter> action android:name="com.zh

2016-07-26 18:48:15 9353

原创 android--动态加载、插件化

何为动态加载、插件化?需求驱动随着业务发展需要和无线部门的拆分,各业务产品模块归属到各业务BU,原有无线App开发团队被分为基础框架、业务A、业务B、业务C等多个开发团队,从此App的开发和发布进入了一个全新模式。在这种模式下,开发沟通成本大大提高,之前的协作模式难以为继,需要新的开发模式和技术解决需求问题。另一方面,从技术上来说65535方法数问题。旧方案是把所有第三

2016-07-21 10:48:43 8388 1

原创 JVM 调优和垃圾回收器说明

JVM垃圾收集算法      JVM垃圾收集算法有四种:标记-清除算法、复制算法、标记-整理算法、分代收集算法      标记-清除算法:      该算法如同它的名字一样,分为两个阶段:标记、清除。首先标记出所有需要回收的对象,然后,统一清除这些被标记的对象。该算法的缺点是:1、效率不高;2、产生大量不连续的内存碎片,导致有大量内存剩余的情况下,由于,没有连续的空间来存放

2016-06-04 20:19:18 9346

原创 Imageloader在listview/gridview中scroll滚动时图片重载的问题及解决

在已经允许内存,存储卡缓存的前提下,当一个图片被请求display时,首先要判断图片是否缓存在内存中,如果false则尝试从存储卡读取,如果依然不存在最后才从网络地址下载从内存读取的速度最快,存储卡次之,在我们滚动listview的时候,如果是从内存加载图片则会显得非常流畅,如果是存储卡就会先出现载入中图片然后再显示实际图片我们通常认为已经读过一次的图片自然将会加入内存缓存中,那么

2016-05-26 19:27:25 887

原创 static java final

static 1. static变量  —— static,在装载时已被初始化,而不是每次创建新对象时都初始化。    按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。两者的区别是:   对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成

2016-04-29 14:21:57 489

原创 java ThreadPoolExecutor

ThreadPoolExecutor机制 一、概述 1、ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现,以内部线程池的形式对外提供管理任务执行,线程调度,线程池管理等等服务; 2、Executors方法提供的线程服务,都是通过参数设置来实现不同的线程池机制。 3、先来了解其线程池管理的机制,有助于正确使用,避免错误使用导致严重故障

2016-04-29 10:55:49 896

原创 Android POI 百度地图——周边检索

周边检索:根据检索词、中心点地理坐标和半径与发起周边检索。实现场景:查找以上海市浦东新区为中心,半径为1000米内所有的“浦东发展银行”(搜周边)。实现步骤:一、前提条件:        搭建百度地图开发环境;        地图引擎管理对象和显示地图的View对象,都已创建并初始化;        MapView对象的相关属性已设置,生命周期函数也

2016-04-25 14:46:28 2708

原创 Linux下如何进行FTP设置

Linux下如何进行FTP设置目录: 一、Redhat/CentOS安装vsftp软件二、Ubuntu/Debian安装vsftp软件一、Redhat/CentOS安装vsftp软件1.更新yum源首先需要更新系统的yum源,便捷工具下载地址:http://help.aliyun.com/manual?spm=0.0.0.0.zJ3d

2016-03-26 18:33:53 487

原创 Android 判断应用处于前后台

1、通过RunningTaskInfo类判断(需要额外权限):代码如下:/**     *判断当前应用程序处于前台还是后台     */    public static boolean isApplicationBroughtToBackground(final Context context) {        ActivityManager am = (A

2016-01-21 14:05:24 1729

原创 Android 进程间通信的几种实现方式

一、概述       由于应用程序之间不能共享内存。在不同应用程序之间交互数据(跨进程通讯),在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件:Activity、Content Provider、Broadcast和Service。其中Activity可以跨进程调用其他应用程序的Activity;Content Provid

2016-01-14 09:53:41 36341 2

原创 HashMap实现原理

首先我们先来回顾一下计算机数据结构里面的哈希表:   散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位               置来        访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。   给定表M,存在函数f(key)

2015-12-16 11:47:19 632

原创 java 接口和抽象

Java接口和Java抽象类最大的一个区别,就在于Java抽象类可以提供某些方法的部分实现,而Java接口不可以(就是interface中只能定义方法,而不能有方法的实现,而在abstract class中则可以既有方法的具体实现,又有没有具体实现的抽象方法),这大概就是Java抽象类唯一的优点吧,但这个优点非常有用。如果向一个抽象类里加入一个新的具体方法时,那么它所有的子类都一下子都得到了这个新

2015-12-15 15:53:15 524

原创 String StringBuffer StringBuilder

关于String,StringBuffer,StringBuilder的东西,现在整理一下。String是不可变的,StringBuffer是可变的;StringBuffer是线程安全的,StringBuilder是非线程安全的。 因而在大部分情况下字符串的拼接速度为:StringBuilder>StringBuffer>String 解释如下: 因为String是不可变的

2015-12-15 15:10:59 567

原创 C、c++ .h 头文件的作用

C语言头文件的作用C语言头文件的作用 最近在工作当中遇到了一点小问题,关于C语言头文件的应用问题,主要还是关于全局变量的定义和声明问题.学习C语言已经有好几年了,工作使用也近半年了,但是对于这部分的东西的确还没有深入的思考过.概念上还是比较模糊的,只是之前的使用大多比较简单,并没有牵涉到太复杂的工程,所以定义和声明还是比较简单而明了了的.但是最近的大工程让我

2015-12-03 12:53:00 1186 1

原创 eclipse devlop python

Eclipse+Pydev1、安装EclipseEclipse可以在它的官方网站Eclipse.org找到并下载,通常我们可以选择适合自己的Eclipse版本,比如Eclipse Classic。下载完成后解压到到你想安装的目录中即可。当然在执行Eclipse之前,你必须确认安装了Java运行环境,即必须安装JRE或JDK,你可以到(http://www.java.com/

2015-12-02 19:15:44 518

原创 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 1484

原创 Android 项目代码行统计方法

介绍如何在Eclipse统计代码行数, studio更容易;使用Eclipse可以方便的统计工程或文件的代码行数,方法如下: 1.点击要统计的项目或许文件夹,在菜单栏点击Search,然后点击File... 2.选中正则表达式(Regular expression),并在搜索文本框输入\n 3.在文件名中输入*或*.java 4.在范围里选中En

2015-11-03 11:42:47 1744

原创 Android 动态加载 APK

近期由于项目过大 造成id 65536的问题,导致编译通不过(Android对一个应用中的方法个数有限制);先看一个开源框架:DynamicLoadApk :1. 功能介绍1.1 简介DynamicLoadApk 是一个开源的 Android 插件化框架。插件化的优点包括:(1) 模块解耦,(2) 动态升级,(3) 高效并行开发(编译速度

2015-10-23 17:59:09 2097

原创 Lock synchronized 详细讲解

Synchronzied:我们先来看下synchronized这个关键字,Java中这个类似于锁的东东,Synchronzied关键字的作用一个词概括就是:线程同步。它可以用来修改对象中的方法,将对象加锁。相当于不管哪一个线程A每次运行到这个方法时,都要检查有没有其它正在用这个方法的线程B(或者C D等),有的话要等正在使用这个方法的线程B(或者C D)运行完这个方

2015-09-23 20:22:57 1075

原创 并发 加锁 以及Java api自身的阻塞队列

Java里的阻塞队列阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。API 位于 ja

2015-09-21 16:50:15 2988 1

原创 ByteBuffer Android

ByteBuffer是NIO里用得最多的Buffer,它包含两个实现方式:HeapByteBuffer是基于Java堆的实现,而DirectByteBuffer则使用了unsafe的API进行了堆外的实现。这里只说HeapByteBuffer。在NIO中,数据的读写操作始终是与缓冲区相关联的.读取时信道(SocketChannel)将数据读入缓冲区,写入时首先要将发送的数据

2015-09-16 16:01:16 4703

原创 Android Socket编程几个概念

//创建服务器连接Socket socket =new Socket("192.168.1.1", 8080);//数据包装OutputStream os=socket.getOutputStream();OutputStreamWriter osw=new OutputStreamWriter(os);BufferedWriter bw=new BufferedW

2015-09-02 12:47:51 863

原创 如何获取Manifest中<meta-data>的值

如何获取Android Manifest中的值在AndroidManifest.xml中,元素可以作为子元素,被包含在 、、、元素中,不同的父元素,在应用时读取的方法也不同。 1:在application应用元素。   xml代码段:                 java代码段:    Applicat

2015-08-17 10:44:45 2406

原创 android service startService与bindService的区别

Android执行Service有两种方法,一种是startService,一种是bindService。下面让我们一起来聊一聊这两种执行Service方法的区别。1、生命周期上的区别    执行startService时,Service会经历onCreate->onStartCommand。当执行stopService时,直接调用onDestroy方法。调用者如果没有st

2015-07-27 12:30:18 7856

转载 Android-IM架构设计

###1. 架构总览###2. 模块介绍####2.1 协议封装与任务流程#####1) 协议与任务的封装 a. 协议有协议头(协议头因为格式相同,被抽象出来)和协议体组成,协议有两类:请求协议(request)和回复协议(response); b. 任务(action)由请求协议、回复协议和任务回调(callback)组成; c. callback

2015-07-22 20:20:50 1856 1

原创 Android ExpandMenu 多级菜单

前言 ,诸如壹号店、同城、去哪等一系列O2O越来越火,他们的应用多级搜索 很是……1,结构分析首先,我们给出这个下来菜单需要的组建。我们用线框图来分析。1)如上图所示,最外围的是一个Activity,顶部包含了一个View的容器,这个容器主要是装载ToggleButton来实现诸如美团里面的“美食,全城,理我最近,刷选”这一行。这一行一点就会弹出对应的下来菜

2015-07-21 20:00:18 2076

原创 android 编码规范

Android编码规范Author Gjson 一、命名规范  1. 包命名  2. 类和接口命名  3. 方法的命名  4. 变量的命名  5. 常量的命名  6. 异常的命名  7. 布局的命名  8. ID的命名  9. 图片的命名 10. 其他资源命名 二、注释规范  1. 文件注释  2. 类注释  3. 方法注释

2015-07-20 17:22:36 609

原创 手机抓包Android

抓前准备:1. Android手机需要先获得root权限。一种是否获得root权限的检验方法:安装并打开终端模拟器(可通过安卓市场等渠道获得)。在终端模拟器界面输入su并回车,若报错则说明未root,若命令提示符从$变#则为rooted;2. 如果Android手机尚未root,可通过superoneclick或其它方法进行root处理(需要先安装Microsoft .NET Fr

2015-07-16 11:15:50 468

原创 Android ANR

Android手机千差万别,因此适配、性能优化等问题相当重要;接下来我将为大家讲解一下ANR一、ANR:Application Not Responding,即应用无响应二:ANR的类型ANR一般有三种类型:1. KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应2. BroadcastTimeout(10

2015-07-14 16:25:46 558

原创 如何查看Android源码

1、直接通过Url而不是git下载android源代码包,路径如下:   http://git.source.android.com/?p=platform/frameworks/base.git;a=snapshot;h=HEAD;sf=tgz下载完成后得到一个base-HEAD.tar.gz文件(目前106 MB)。将之解压到某个目录,比如(在我的机器上):  D:/d

2015-07-07 20:08:34 569

原创 TCP/IP, WebSocket 和 MQTT

按照OSI网络分层模型,IP是网络层协议,TCP是传输层协议,而HTTP和MQTT是应用层的协议。在这三者之间, TCP是HTTP和MQTT底层的协议。大家对HTTP很熟悉,这里简要介绍下MQTT。MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网

2015-06-10 13:55:23 1347

原创 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 3343

原创 Intent Crop

call to OpenGL ES API with no current context (logged once per thread)

2015-05-26 12:08:25 2632 1

android本地图库自定义分类 实现一次选取多张照片

android本地相册自定义分类、一次选择多张照片 因为Android的本地图片没有一次选择多图片的方法. 所以本人就开发了类似 类似仿微信的本地多张图片选择的DEMO. 本DEMO做的非常简单. 移植也好移植. 在DEMO中SkanActivity.onkeydown方法里已经获取到了你们选择的

2014-12-30

session、viewstate jQuery SQL存储过程等一系列教学网站 相当实用哦

session、viewstate jQuery SQL存储过程等一系列教学网站 相当实用哦

2014-03-20

c++课程设计mfc自制的MP3播放器源码

利用MFC应用程序、媒体控制接口MIC的基本知识,设计一个MP3播放器。要求能够播放常用Windows音频格式的文件;实现播放控制:播放、暂停、停止等;实现音量控制:静音、声音放大减小;实现播放列表管理:加入文件、加入目录、删除文件等功能。 实现功能 MP3播放器主要对常用Windows音频格式的文件实现播放控制:播放歌曲、暂停播放、停止播放等;实现音量控制:静音、声音放大以及声音减小的功能。

2013-03-13

用mfc自制的音乐播放器

利用MFC应用程序、媒体控制接口MIC的基本知识,设计一个MP3播放器。要求能够播放常用Windows音频格式的文件;实现播放控制:播放、暂停、停止等;实现音量控制:静音、声音放大减小;实现播放列表管理:加入文件、加入目录、删除文件等功能。 实现功能 MP3播放器主要对常用Windows音频格式的文件实现播放控制:播放歌曲、暂停播放、停止播放等;实现音量控制:静音、声音放大以及声音减小的功能。

2013-03-13

android最新的ADT

android开发 最新的adt、最新的tookit

2013-03-01

android开发自学教程

一本基于初级人员学习,入门必备的android 开发教程

2012-05-03

足球订票系统

android-> 订票系统 : 功能:提供球票查询、球票预定、座位预定、手机支付、订单跟踪等功能球票查询:输入球队关键字、比赛日期、价格范围等,查询出符合要求的比赛详细信息。 要求支持渐进式查询(打前几个字母就能匹配)。 对于自己感兴趣的比赛,可以添加到收藏夹中。同时还可查出座位剩余情况供选择。 球票预订:订单编制、提交。具体包括比赛时间和球队、比赛名称、票价、发票信息、订票数量、订票日期、取票方式、付款方式、付款期限、图形化座位选定等等。 订单维护:对尚未终止及尚未结清订单可以进行维护。 对选定订单的总括信息和明细信息可进行加、删、改操作。具体计算公式、流程及数据的有效性校验都与订票录入相似。 订单跟踪:包括已经提交的订单目前状态,出票状态等等。并提供简单的统计功能,计算当前订票总金额历史记录查询:查询自己历史订单,成交总金额等等后台程序:后台服务端程序,接收手机订票信息,存入数据库 在线支付:使用支付宝或手机充值账户进行票款支付,及后台接口

2012-05-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除