自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Fenice

死生契阔,与子成说。执子之手,与子偕老。

  • 博客(404)
  • 资源 (26)
  • 收藏
  • 关注

转载 Android 开发效率

这些小工具让你的 Android 开发更高效Android博客周刊

2016-04-21 12:29:27 577

转载 android开发中出现的错误集(不断更新)

23.在使用AndroidHttpClient时有如下错误:01-16 22:18:39.222: E/AndroidHttpClient(26745): java.lang.IllegalStateException: AndroidHttpClient created and never closed 这个主要是因为没有调用AndroidHttpClient的close()方法

2015-07-30 15:09:24 2544

转载 开源框架

Libs http://www.sjsjw.com/100/005360MYM028499/Table of contentsFrameworkEventBusOrmImage LoadingAnimationsNetworkWidgetMaterialUITextView/EditTextImageViewButtonProgressbar/Progress ViewMe

2015-06-26 11:23:02 7695

原创 Android 常用开源框架效果(一)

1、一个类似于美团、腾讯课堂移动端的带过滤功能的下拉菜单。教程:https://github.com/leerduo/FilterDropDownMenu2、可以完成添加、删除、选择操作的标签控件,可以自定样式(颜色等),可删除的标签末尾带有'×'符号。和Android-Cloud-TagView-Plus(见正文相关代码)类似。https://github.com/n

2015-06-17 11:40:03 1144

原创 Android 高级开发 源码 UI 缓存 网络

1、Android 源码剖析 性能优化  开源代码

2014-12-24 10:40:35 827

原创 比较样式1111

package com.example.zzl.view;import android.animation.ValueAnimator;import android.animation.ValueAnimator.AnimatorUpdateListener;import android.content.Context;import android.graphics.Canvas;im

2016-11-07 16:09:17 677

原创 patch

public class PatchManager { private Context context; AndFixManager andFixManager; File src; public PatchManager(Context context) { this.context = context; init(); } private void init() {

2016-10-21 18:33:45 630

原创 sfsf

package com.test;import java.awt.Robot;import java.lang.Thread.State;import java.util.Stack;public class BinaryTree {private TreeNode  root = null;public BinaryTree(){root = ne

2016-10-21 13:56:39 954

原创 java7新特性

1、switch语句中可以使用字符串 switch(week){ case:"Monday" break;}2、处理不同的异常try { File file = new File(""); FileInputStream inputStream = new FileInputStream(file); SimpleDateFormat format = new Si

2016-06-09 19:42:04 566

原创 Android Studio 入门

1、推荐几款不错的插件http://blog.csdn.net/liang5630/article/details/46366901/http://www.2cto.com/kf/201504/389231.html点击打开链接2、AS实用指南3、Mac中Android Studio的SVN使用详解

2016-05-24 15:25:59 653

转载 给 App 提速:Android 性能优化总结

转:给 App 提速:Android 性能优化总结字数9521 阅读409 评论0 喜欢2[原文链接](http://android.jobbole.com/81944/)我在几周前的 Droidcon NYC 会议上,做了一个关于 Android 性能优化的报告。我花了很多时间准备这个报告,因为我想要展示实际例子中的性能问题,以及如何使用适合的工具去确认它

2016-04-07 10:45:38 741

转载 Android开源项目分类汇总

第一部分 个性化控件(View)主要介绍那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、 GridView、ImageView、ProgressBar、TextView、ScrollView、TimeView、TipView、 FlipView、ColorPickView、GraphView、UI Style等等。、其他

2016-04-05 17:28:17 737

翻译 Android 知识体系

一、性能优化 1、布局优化 减少层次,view数量,ReleativeLayout和LinearLayout(weight)选择,viewstub,merge,include 2、代码优化 a、防止内存泄露(使用弱引用代替) b、性能检测工具(DDMS,MAT,TracceView,HeryLayout) c、bitmap,采样压缩,尽量使用drawable,使用弱引用缓存

2016-03-18 19:16:45 618

转载 携程Android App插件化和动态加载实践

转自http://www.infoq.com/cn/articles/ctrip-android-dynamic-loading编者按:本文为携程无线基础团队投稿,介绍它们已经开源的Android动态加载解决方案DynamicAPK,本文作者之一,携程无线研发总监陈浩然将会在ArchSummit北京2015架构师大会上分享架构优化相关内容,欢迎关注。携程Android App的插件

2016-03-18 16:00:40 1153

转载 java 线程如何被终止

http://blog.csdn.net/anhuidelinger/article/details/11746365终止线程的三种方法      有三种方法可以使终止线程。     1.  使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。     2.  使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resum

2016-03-17 15:18:22 575

转载 深入理解Java内存模型 volatile

volatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代码:转自http://www.infoq.com/cn/articles/java-memory-model-4/cl

2016-03-17 09:52:42 566

转载 Android IPC机制 开启多进程

正常情况下,一个apk启动后只会运行在一个进程中,其进程名为AndroidManifest.xml文件中指定的应用包名,所有的基本组件都会在这个进程中运行。但是如果需要将某些组件(如Service、Activity等)运行在单独的进程中,就需要用到android:process属性了。我们可以为android的基础组件指定process属性来指定它们运行在指定进程中。        对p

2016-03-10 17:56:45 489

转载 移动应用-使用tcpdump抓包

转自http://www.tuicool.com/articles/VFNZNvE今天看了一些网上的教程,发现按照这些流程去做会出问题,先把正确的tcpdump的配置和使用流程总结一下,前面几步和网上的一样拿android手机做例子:1,确保手机是root权限 2.下载tcpdump工具包  3.   adb push f:\tcpdump /data/

2016-03-09 15:11:23 671

转载 Android使用Messenger进行Service IPC通信分析

转自http://blog.csdn.net/chenfeng0104/article/details/7010244Android IPC通信有两种方式,上一篇文章深入分析AIDL原理讲解了AIDL方式,这篇文章讲解另一种IPC通信方式——Messager方式。Messager实现IPC通信,底层也是使用了AIDL方式。和AIDL方式不同的是,Messager方式是利用Handl

2016-03-04 18:47:39 467

转载 Android设计模式之工厂模式 Factory

一.概述       平时做项目跟使用第三方类库的时候经常会用到工厂模式.什么是工厂模式,简单来说就是他的字面意思.给外部批量提供相同或者不同的产品,而外部不需要关心工厂是如何创建一个复杂产品的过程.所以工厂模式可以降低模块间的耦合,同时可以提高扩展性(当有新的产品出现时,只需要扩展工厂就行了,上层模块不敏感).       工厂模式根据抽象的角度和层级的不同可以分为两种模式:

2016-03-04 17:47:21 830

转载 App架构设计经验谈:业务层的设计

原创文章,转载请注明:转载自Keegan小钢并标明原文链接:http://keeganlee.me/post/architecture/20160214微信订阅号:keeganlee_me写于2016-02-14App架构设计经验谈:接口的设计App架构设计经验谈:技术选型App架构设计经验谈:数据层的设计App架构设计经验谈:业务层的设计App架构设计经验

2016-03-04 17:14:23 588

转载 java(spring)手把手教你写个AOP框架

Why AOP?AOP基本术语AOP执行流程动手实现一个AOP源代码 Why AOP? AOP(Aspect-Oriented Programming),意思是面向切面编程。传统的OOP面向对象相当于站在一个上帝模式从上往下看,里面的一块块都是一个对象,由我任意组合;而AOP不同之处在于,他是以一个旁观者的身法,从“侧面”看整

2016-03-04 11:32:28 5663

转载 深入理解Android之AOP

转自http://blog.csdn.net/innost/article/details/49387395格式更加精美的PDF版请到:http://vdisk.weibo.com/s/z68f8l0xTgCLK 下载一、闲谈AOP大家都知道OOP,即ObjectOriented Programming,面向对象编程。而本文要介绍的是AOP。AOP是Aspect Orien

2016-03-03 19:10:02 1115

转载 Android MVVM模式

原文链接 : MVVM on Android using the Data Binding Library原文作者 : Ross Hambrick译文出自 : 开发技术前线 www.devtf.cn。未经允许,不得转载!译者 : shenyansycn校对者: chaossss状态 : 完成Google 2015开发者大会终于来了,其中只有一个开发工具真的让我兴奋。我们看到了一系列的改

2016-03-03 17:58:47 1396

转载 Android设计模式之浅谈MVP

一.概述转自http://blog.csdn.net/l2show/article/details/46659027MVP(Model-View-Presenter) 是总所周知MVC模式的一个演变,他们的主要目的都是划分模块职责,降低模块耦合,易测试,提高代码复用,这里主要针对Android平台来简单分析MVP.1.层级责任Model:       负

2016-03-02 20:07:55 625

转载 Android 框架模式 MVC 在Android中的使用

转自http://www.2cto.com/kf/201506/405766.html算来学习Android开发已有2年的历史了,在这2年的学习当中,基本掌握了Android的基础知识。越到后面的学习越感觉困难,一来是自认为android没啥可学的了(自认为的,其实还有很多知识科学),二来网络上的很多框架已经帮我们做了太多的事情了,我们只需要画画UI就可以了,感觉Android开发没有太多

2016-03-02 19:47:31 783 2

转载 任务、进程和线程

任务、进程和线程关于Android中的组件和应用,之前涉及,大都是静态的概念。而当一个应用运行起来,就难免会需要关心进程、线程这样的概念。在Android中,组件的动态运行,有一个最与众不同的概念,就是Task,翻译成任务,应该还是比较顺理成章的。Task的介入,最主要的作用,是将组件之间的连接,从进程概念的细节中剥离出来,可以以一种不同模型的东西进行配置,在很多时候,能够简化上层开发

2016-03-02 18:23:52 558

转载 Android APP如何防止二次打包

Android系统的开放性和免费性等特征让开发者和用户趋之若鹜,用户也渐渐习惯了Android应用的这种免费午餐,但在免费的背后却有着巨大的安全阴影。我们可以通过APP检测工具对APP进行检测。      “Android APP二次打包”则是盗版正规Android APP,破解后植入恶意代码重新打包。不管从性能、用户体验、外观它都跟正规APP一模一样但是背后它确悄悄运行着可怕的程序,它会

2016-03-02 15:14:03 1477

转载 android apk 防止反编译技术第五篇-完整性校验

转自http://my.oschina.net/u/2323218/blog/403621又到周末一个人侘在家里无事可干,这就是程序员的悲哀啊。好了我们利用周末的时间继续介绍android apk防止反编译技术的另一种方法。前三篇我们讲了加壳技术(http://my.oschina.net/u/2323218/blog/393372)、运行时修改字节码(http://my.oschin

2016-03-02 11:09:02 1178

转载 Android APP 防破解进化史

http://tech.it168.com/a2014/0425/1616/000001616976.shtml Android平台以其免费和开源的特性使其占据了移动领域大半壁江山,越来越的人投身到移动应用开发中,但本文恐怕要先给Android应用开发者泼盆冷水,据360发布的《2014年中国手机安全状况报告》显示,2014全年,360互联网安全中心累计监测到Android用户感染恶意程序3.

2016-03-01 18:05:40 1459

转载 Java层Binder机制详解

本文是我阅读《Android内核剖析》一书的笔记,在此写下来是希望能够加深理解,也希望朋友们能够指出其中的不足。http://blog.csdn.net/yuanzeyao/article/details/12954641Binder是一种基于C/S的架构,主要包括四个部分:服务端(Server),客户端(Client),Binder驱动,ServiceManager。Binder是And

2016-03-01 16:51:28 650

转载 android手机root后的安全问题 (二)

导读:本文介绍杀毒软件和病毒是如何获取通知栏上的所有通知,并且利用其信息杀死应用。 上一篇将过如何利用root权限来做一次静默安装,有的人会说,安装apk就安装呗,反正哥有金山手机卫士,哥有360主动防御……他们都会弹出通知告诉我的!安装了新的应用,手机会发送广播,这些所谓的杀毒软件监听这些广播,然后弹出通知好吧,我承认,他们在一定意义上还是有点用处的,我们先把这个

2016-02-29 12:17:09 691

原创 知识积累

1、布局优化ReleativeLayout 和 LinearLayout布局的onMeasure效率

2016-02-01 11:03:05 577

转载 android开发中遇到的问题汇总

android开发中遇到的问题汇总(五),android汇总127.ANDROID仿IOS时间_ANDROID仿IOS弹出提示框http://dwtedx.com/itshare_297.html128. Android TextView drawableLeft 在代码中实现方法1Drawable drawable= getResources().getDrawable(R

2016-01-26 17:00:37 16243

原创 Fragment声明周期 开发遇到的问题

Activity A(MainActivity)中添加了一个Fragment,在Fragment中启动另一个Activity B,在执行B.finish(),A.finish()生命周期如下01-12 11:01:00.555: I/System.out(18028): MainActivity onCreate ....01-12 11:01:00.555: I/System.o

2016-01-12 18:13:19 748

原创 Android多媒体之 wav和amr的互转

1、wav和amr文件都有头文件,AudioRecord录制出来的文件是raw格式的就不能播放,加上wav头文件就变成wav文件就可以播放。给raw文件添加wav头文件/** * 这里提供一个头信息。插入这些信息就可以得到可以播放的文件。 * 为我为啥插入这44个字节,这个还真没深入研究,不过你随便打开一个wav * 音频的文件,可以发现前面的头文件可以说基本一样哦。每种

2015-12-22 12:27:03 12135 12

原创 Android多媒体之LAME MP3录音转换

1、有编译JNI的环境,NDK,Android环境2、下载LAME源码进行编辑 下载地址3、在android环境中如何导入Lame的源码进行编译  http://developer.samsung.com/technical-doc/view.do?v=T000000090点击打开链接4、JNI的代码#include #include #include #include

2015-12-22 11:18:21 1917

转载 Activity性能优化10条建议

About the Speaker: Boris Farber每个人都知道一个 App 的成功,更这个 App 的性能体验有着很密切的关系。但是如何让你的 App 拥有极致性能体验呢?在 DroidCon NYC 2015 的这个分享里,Boris Farber 带来了他关于 Android Api 以及如何避免一些常见的坑的经验。了解如何缩短启动时间,优化滑动效果,创建更加顺滑的用户体验

2015-12-08 16:31:11 3314

转载 android 提高进程的优先级

Android 系统对于内存管理有自己的一套方法,为了保障系统有序稳定的运信,系统内部会自动分配,控制程序的内存使用。当系统觉得当前的资源非常有限的时候,为了保 证一些优先级高的程序能运行,就会杀掉一些他认为不重要的程序或者服务来释放内存。这样就能保证真正对用户有用的程序仍然再运行。如果你的 Service 碰上了这种情况,多半会先被杀掉。但如果你增加 Service 的优先级就能让他多留一会

2015-12-05 15:18:20 976

转载 Android面试题整理【转载】

http://www.apkbus.com/android-115989-1-1.html面试的几个回答技巧http://blog.sina.com.cn/s/blog_ad991b1601018mjc.html2013-5-9号补充:今天最新的腾讯面试题,应该说是所有面试中最难的,我个人感觉。而且是个女面试官,好嗨皮啊,哈哈。腾讯面试题1.in

2015-11-11 17:52:12 1343

opencore框架实现wav和amr的转换

opencore框架实现wav和amr的转换 AmrInputStream AmrInputStream AmrInputStream

2015-12-22

Lame 录音MP3

将录音转换成MP3

2015-12-22

android listView顶部悬浮效果实现

android listView顶部悬浮效果实现

2015-06-17

listview分类显示

listview分类显示

2015-06-13

classloader

这篇文章主要讲类加载器在android中如何动态的加载其他工程类的过程,对于类加载器的知识就跳过了。

2015-04-28

侧滑菜单ViewGroup

侧滑菜单

2015-01-20

仿ViewPager

用到Scroller类,滚动的速度;GestureDetector手势类,应用到了快速滑动方法。

2015-01-20

Tab滑动标签

这里的菜单是通过两种方式来实现,一种是通过布局文件,一种是通过自定义组件LinearLayout。自定义只需要传入菜单的名字即可,切换时需要监听事件。下面是一个viewpager+fragment实现,在滑动时改变tab的选中项。 自定义tab底部线是采用TranslateAnimation动画来实现滚动,布局文件采用viewpager的方法onPageScrolled和onPageScrollStateChanged来实现。

2015-01-16

JNIAndroid

里面包含了C和java之间的调用,简单对象的调用,复杂对象的处理,回调函数,异常处理

2015-01-12

android 仿google play效果,ListView/GridView下拉刷新,上拉加载更多,自动加载异步请求数据以及分页数据

import com.viewpagerindicator.TabPageIndicator; /** * @类名:ViewPagerListViewActivity * @描述:TODO(左右滑动) * @作者:zhaohao * @时间 2013-7-1 上午11:23:33 */ public class ViewPagerListViewActivity extends FragmentActivity { private static final String[] CONTENT = new String[] { "头条娱乐", "汽车世界", "风景", "动物世界","美图","图文展示", "各地风俗","美食天下","军事","一周军事看点"}; private int touchSlop; TouchViewPager pager =null; FragmentPagerAdapter adapter=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.simple_tabs); adapter = new GoogleMusicAdapter(getSupportFragmentManager()); pager = (TouchViewPager)findViewById(R.id.pager); pager.setAdapter(adapter); TabPageIndicator indicator = (TabPageIndicator)findViewById(R.id.indicator); indicator.setViewPager(pager); onTouch(); } class GoogleMusicAdapter extends FragmentPagerAdapter { public GoogleMusicAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { if("美图".equals(CONTENT[position])){ return GridContentActivity.newInstance(CONTENT[position]); }else{ return ContentActivity.newInstance(CONTENT[position]); } } @Override public CharSequence getPageTitle(int position) { return CONTENT[position % CONTENT.length]; } @Override public int getCount() { return CONTENT.length; } } public void onTouch() { touchSlop = ViewConfiguration.get(ViewPagerListViewActivity.this).getScaledTouchSlop(); pager.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch(event.getAction()) { case MotionEvent.ACTION_UP: float downX = pager.getDownX(); float lastX = event.getX(); float disX = Math.abs(lastX-downX); if(touchSlop<disX && lastX >downX && pager.getCurrentItem()==0 ) { Toast.makeText(ViewPagerListViewActivity.this, "左滑关闭", 3).show(); }else if(touchSlop<disX && lastX <downX && pager.getCurrentItem()==adapter.getCount()-1){ Toast.makeText(ViewPagerListViewActivity.this, "右滑动进入评论", 3).show(); } break; } return false; } }); } } package net.xinhua.activity; import java.util.ArrayList; import java.util.List; import net.xinhuamm.adapter.NewsIndexAdapter; import net.xinhuamm.entity.NewsListEntity; import net.xinhuamm.units.Constants; import net.xinhuamm.widget.TotiPotentListView; import net.xinhuamm.widget.TotiPotentListView.ICommViewListener; import net.xinhuamm.widget.LoadMoreListView; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; /** * @类名:ContentActivity * @描述:TODO(新闻内容页面,异步加载数据,下拉刷新,上拉加载更多) * @作者:zhaohao * @时间 2013-7-1 下午3:43:52 */ public class ContentActivity extends Fragment implements ICommViewListener { View mView=null; //全能ListView 支持下拉刷新数据和上拉加载更多 TotiPotentListView loadDataView=null; NewsIndexAdapter newsIndexAdapter=null; LoadMoreListView loadMoreListView=null; String defaultTitle=""; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } public static ContentActivity newInstance(String title) { ContentActivity fragment = new ContentActivity(title); return fragment; } public ContentActivity(String defaultTitle) { this.defaultTitle=defaultTitle; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mView=inflater.inflate(R.layout.content_layout, null); return mView; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); loadDataView=(TotiPotentListView) mView.findViewById(R.id.loaddataview); loadDataView.setCommViewListener(this); loadMoreListView=loadDataView.getLoadMoreListView(); loadDataView.setListViewDriver(0); newsIndexAdapter=new NewsIndexAdapter(getActivity()); loadMoreListView.setAdapter(newsIndexAdapter); loadDataView.initData(); } @Override public List<Object> doInBackGround(int CurrentPage) { try { Thread.sleep(50); } catch (InterruptedException e) { e.printStackTrace(); } return objects(CurrentPage); } @Override public void callBackListData(List<Object> list) { newsIndexAdapter.setList(list, true); } @Override public void onHeadRefresh() { newsIndexAdapter.clear(); } public List<Object> objects(int currentpage){ ArrayList<Object> arrayList=new ArrayList<Object>(); for (int i = 0; i <20; i++) { NewsListEntity newsListEntity=new NewsListEntity(); newsListEntity.setNEWS_COMMENT_COUNT((i+1)+""); newsListEntity.setNEWS_TITLE(defaultTitle+i); newsListEntity.setSERVER_DOMAIN(Constants.IMAGES[i]); newsListEntity.setNEWS_MEMO(defaultTitle); arrayList.add(newsListEntity); } return arrayList;

2014-12-23

html网页取色工具htmlcol.zip

可以取到网页上颜色编码值

2013-05-27

EJB3.0 实例教程

EJB3.0 实例教程

2013-05-27

XFire1.2.6

基于webservice的开发,XFire需要的jar文件。

2013-05-27

host editor

可以动态导入host文件,有利于在开发web项目时频繁的更改host文件的地址。

2013-05-27

ADT-0.9.8.zip

开发android必须使用的工具,先需要安装adt,再才可以安装android sdk

2013-01-28

(Android中文API.chm

是一个中文版的android开发手册,阅读起来比较容易。

2013-01-28

birt 报表资料珍藏版

用于报表的开发,在java web中经常使用

2013-01-28

方立勋JavaWeb视频前十一天ppt版本

方立勋JavaWeb视频前十一天ppt版本 方立勋JavaWeb视频前十一天ppt版本

2012-03-11

方立勋JavaWeb视频十到十一天

方立勋JavaWeb视频十到十一天 方立勋JavaWeb视频十到十一天

2012-03-11

JPA技术开发

JPA技术开发ppt

2012-03-05

EJB3.0企业开发 黎活明

EJB3.0企业开发 黎活明

2012-03-05

Struts高级实战进阶-张孝祥.ppt

Struts高级实战进阶-张孝祥 Struts高级实战进阶-张孝祥

2012-03-05

Java Struts教程.

Java Struts教程

2012-03-05

mysql-src-5.1.17.jar

mysql-src-5.1.17 源代码,对于理解mysql的一些类是很有必要的。

2012-03-05

struts-1.3.8源代码

struts-1.3.8源代码,看源代码对理解struts原理是很有帮助的。

2012-03-05

struts2_入门指南.chm

struts2里面涵盖了几乎所有的struts2标签,可以迅速查询标签的用法。

2012-03-05

空空如也

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

TA关注的人

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