自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(264)
  • 资源 (2)
  • 收藏
  • 关注

转载 手把手教你调试Linux C++ 代码

软件调试本身就是一项相对复杂的活动,他不仅要求调试者有着清晰的思路,而且对调试者本身的技能也有很高的要求。Windows下Visual Studio为我们做了很多的工作,使初学者基本上可以获得一个所见即所得的调试体验,相对来说也比较容易上手。然而在linux平台下,一切都显得有些不同,倒不是说GDB有多难,只是对于习惯了visual studio的人来说刚开始会有些不适应。然而对于那些在win

2016-06-16 17:02:41 2515

转载 Docker常用命令

1. 查看docker信息(version、info)[plain] view plain copy# 查看docker版本  $docker version    # 显示docker系统的信息  $docker info  2. 对image的操作(search、pull、images、rmi、histor

2016-04-18 11:37:18 576

原创 找出重复元素并计算次数

比如10个数字 1 3 2 5 3 4 7 3 5 2 找出哪些是重复的并且重复了几次 Integer[] arr = new Integer[]{1,3,2,5,3,4,7,3,5,2}; Map map = new HashMap(); for (Integer i : arr) { if(map.get(i)!=n

2015-12-29 10:29:37 1140

原创 Android 性能优化总结

之前看了很多关于优化的例子,最近项目也正在这个阶段,看的太多太杂难免有些混乱,所以就整理记录下来,方便以后的补充和学习。一、界面优化:(1).使用开发者选项中的[调试GPU过度绘制]根据显示的颜色判断(2).使用开发者选项中的[GPU呈现模式分析]根据条形图,检测绘制失帧情况(3).查看层级结构可以用HierarchyViewer的工具进行分析(4).通过使用 Lint 来

2015-12-18 14:28:12 838

转载 Android版本更新时对SQLite数据库升级或者降级遇到的问题

SQLite是Android内置的一个很小的关系型数据库。SQLiteOpenHelper是一个用来辅助管理数据库创建和版本升级问题的抽象类。我们可以继承这个抽象类,实现它的一些方法来对数据库进行自定义操作。下面两个方法必须重写:public void onCreate(SQLiteDatabase db)public void onUpgrade(SQLiteDatabase db, i

2015-12-17 12:11:00 9646

转载 内存泄露之常见原因与用户实践

常见原因1.集合类集合类如果仅仅有添加元素的方法,而没有相应的删除机制,导致内存被占用。如果这个集合类是全局性的变量 (比如类中的静态属性,全局性的 map 等即有静态引用或 final 一直指向它),那么没有相应的删除机制,很可能导致集合所占用的内存只增不减。 2.单例模式不正确使用单例模式是引起内存泄露的一个常见问题,单例对象在被初始化后将在

2015-12-15 16:43:39 626

原创 RxJava学习资源

讲解视频:http://boolan.com/lecture/1000001243#0-tsina-1-68759-397232819ff9a47a7b7e80a40613cfe1大头鬼整理:https://github.com/lzyzsd/Awesome-RxJava

2015-12-09 15:08:21 666

转载 内存泄露从入门到精通三部曲之常见原因与用户实践

常见原因1.集合类集合类如果仅仅有添加元素的方法,而没有相应的删除机制,导致内存被占用。如果这个集合类是全局性的变量 (比如类中的静态属性,全局性的 map 等即有静态引用或 final 一直指向它),那么没有相应的删除机制,很可能导致集合所占用的内存只增不减。2.单例模式不正确使用单例模式是引起内存泄露的一个常见问题,单例对象在被初始化后将在 JVM 的整个生命周

2015-12-04 16:30:24 657

原创 检测内存泄漏——LeakCanary的使用

废话不多说...(这句..)  一、在Android Studio 的build.gradle中加入compile 'com.squareup.leakcanary:leakcanary-android:1.3.1'二、在Application中添加如下代码://public static RefWatcher getRefWatcher(Context

2015-11-19 15:06:02 2805

原创 基于Windows Azure服务器的GCM推送——Android端集成

参考地址:http://www.windowsazure.cn/documentation/services/mobile-services/一、下载并导入需要的jar包:mobileservices-2.0.3.jar 、 guava-17.0.jar 、 notifications-1.0.1.jar二、在启动的Activity中加入以下代码:其中PushAppUrl 是服

2015-11-19 14:55:04 1028

原创 平板中UI 模拟餐馆真实布局

后台给出的数据实体是:1.private int height; //参照的基准高度private int width; //参照的基准宽度private int id;private String name;private String roomImg; //房间的图片private TablesModel[] tables; //餐桌实体

2015-11-19 14:26:14 707

原创 【MDCC2015】 平台与技术-Android专场总结

Android开发的主要问题包括五个方面:       1.性能;2.产品质量;3.产品迭代;4.多进程架构;5.其它典型问题。在性能方面,运行速度依赖于性能分析、优化UI布局,优化算法和数据结构和业务逻辑调整。       防止内存泄露是一个需要特别注意的问题。当然,占用内存占用的因素还包括不够优化的数据结构、图片,所以能少用图片就尽量少用,而对于多进程架构,要注意Android是基

2015-11-11 18:16:22 543

转载 避免在EditText中输入回车键但文本依然是多行显示

如何在Android上设计一个这样的EditText:用户不用使用回车或换行符输入一个多行文本,但是文本显示依然是多行,即有自动换行。方案一、 public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (event != null) { // if shif

2015-11-11 12:02:57 1796

转载 Android设计模式——Builder模式

什么是Builder模式呢。你通过搜索,会发现大部分网上的定义都是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。但是看完这个定义,并没有什么卵用,你依然不知道什么是Builder设计模式。在此个人的态度是学习设计模式这种东西,不要过度在意其定义,定义往往是比较抽象的,学习它最好的例子就是通过样例代码。我们通过一个例子来引出Buil

2015-11-04 17:19:20 10148 7

转载 Android内存泄露的原因

(一)释放对象的引用误将一个本来生命周期短的对象存放到一个生命周期相对较长的对象中,也称“对象游离“。隐蔽的内部类(Anonymous Inner Class):mHandler = new Handler() {@Overridepublic void handleMessage(Message msg) {....}};

2015-11-04 16:34:56 633

转载 Android设计模式--观察者模式

定义关于定义,最准确的莫过于Head First设计模式中写到的。观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监听一个主题对象。这样一来,当被观察者状态发生改变时,需要通知相应的观察者,使这些观察者对象能够自动更新。关键要素主题主题是观察者观察的对象,一个主题必须具备下面三个

2015-11-04 15:59:05 622

转载 Android中的多线程编程详解

1. 为什么要用多线程这里列出几个原因:a) 提高用户体验或者避免ANR在事件处理代码中需要使用多线程,否则会出现ANR(Application is not responding),或者因为响应较慢导致用户体验很差。b) 异步应用中有些情况下并不一定需要同步阻塞去等待返回结果,可以通过多线程来实现异步,例如:上一点中提到的,你的应用中的某个Activity需要从云端获取一

2015-11-04 15:54:23 1833

转载 使用硬件层来实现灰度视图

最近从设计团队那里得到一个需求,让一个特定的view在彩色和灰度之间切换。灰度,一个专用术语,意思是去掉一张图片中的所有饱和度。我快速Google 了一下得到了如下的代码:public Bitmap toGrayscale(Bitmap original) {            int height = original.getHeight();    int width = orig

2015-11-02 17:21:03 527

转载 Android开发中,那些让你觉得相见恨晚的方法、类或接口

本篇文章内容提取自知乎android开发中,有哪些让你觉得相见恨晚的方法、类或接口?,其实有一部是JAVA的,但是在android开发中也算常见。大多数的函数自己还是见过的,这里记录一下备忘。同时呢,也推荐一个github项目,里面记录了自己日常开发中见过的比较有用的东西开发中常用的工具、链接Throwable类中的getStackTrace()方法,根据这个方法可以得到函数的逐层调用地址

2015-10-29 11:14:40 3120

转载 Android中AIDL及其使用

1、为什么要有AIDL?无论学什么东西,最先得弄明白为什么要有这个东西,不要说存在即是合理,存在肯定合理,但是你还是没有明白。对于AIDL有一些人的浅显概念就是,AIDL可以跨进程访问其他应用程序,和其他应用程序通讯,那我告诉你,很多技术都可以访问,如广播(应用A在AndroidManifest.xml中注册指定Action的广播)应用B发送指定Action的广播,A就能收到信息,这样也能看成

2015-10-29 10:08:29 502

转载 Android应用UI架构

这个标题听起来可能有点大,其实这里主要就是讨论一个应用程序的UI组件,是全用Activity还是全用Fragment,或者是二者皆有,以及使用Activity和Fragment的一些注意事项。 Activity or Fragment从API 11,Honeycomb开始,Google在Android之中加入了Fragment,一个轻量级的,可复用的,模块化的UI组

2015-10-24 17:47:30 709

转载 什么导致了Context泄露:Handler&内部类

public class SampleActivity extends Activity { private final Handler mLeakyHandler = new Handler() { @Override public void handleMessage(Message msg) { // ... } }}如果没有仔细观察,上

2015-10-24 17:37:48 434

转载 Android APK优化工具Zipalign详解

Android SDK中包含了一个用于优化APK的新工具zipalign。它提高了优化后的Applications与Android系统的交互效率(俗话:“要致富先修路”,Android小组重新为Applications与Android系统之间搭建了一条高速公路),从而可以使整个系统的运行速度有了较大的提升。Android小组强烈建议开发者在发布新Apps之前使用zipalign优化工具,而且对于已

2015-10-22 18:06:54 663

原创 Google I/O 2015 Android Design

详情见官方博客:http://android-developers.blogspot.fi/2015/05/android-design-support-library.html

2015-10-22 11:31:20 525

原创 Android -- Facebook -- HashKey的生成

1.先下载openssl软件地址:https://openssl-for-windows.googlecode.com/files/openssl-0.9.8e_X64.zip2.配置openssl的路径,到系统path3.进入CMD输入: keytool -exportcert -alias androiddebugkey -keystore C:\Android\.android\

2015-10-14 11:29:53 5224 1

转载 handler总结

概述 Handler是android用来更新UI,处理消息的机制。使用线程和Handler更新UI方法一 新建handler对象,并覆写handleMessage(),在主线程中开启一个子线程,进行耗时操作(比如下载图片),得到图片之后,利用handler的sendMessage(),将图片发送给handler,在handleMessage()中进行UI的更新。发送

2015-10-12 14:13:06 506

转载 handler底层是如何将消息从子线程发送到主线程

这个问题的实质是handler机制+引用的传递.理解handler机制有很多方法,我推荐的方法是从四个关键类Handler、Message、MessageQueue、Looper的方法入手来弄清消息传递这一整条线的逻辑:这条线的走向是:(相关对外提供的方法可以用eclipse或者source insight来查看.)1产生消息对象2-->消息相关属性(what,obj,target

2015-10-12 14:07:59 3862

转载 Android java 结束线程的正确操作

线程对象属于一次性消耗品,一般线程执行完run方法之后,线程就正常结束了,线程结束之后就报废了,不能再次start,只能新建一个线程对象。但有时run方法是永远不会结束的。例如在程序中使用线程进行Socket监听请求,或是其他的需要循环处理的任务。在这种情况下,一般是将这些任务放在一个循环中,如while循环。当需要结束线程时,如何退出线程呢?有三种方法可以结束线程:使用退出标

2015-08-13 09:27:04 720

原创 Android 开发中 iBeacon的使用

iBeacon的工作原理是基于Bluetooth Low Energy(BLE)低功耗蓝牙传输技术,iBeacon基站不断向四周发送蓝牙信号,当智能设备进入设定区域时,就能够收到信号。只要满足iBeacon技术标准的都可以使用,所以Android也能够支持iBeacon。Google在Android4.3中支持BLE技术定位一直是非常关键的功能。通过iBeacon基站的部署能够实现室内导航

2015-08-10 20:08:03 38076 8

转载 你所不知道的传输层(TCP/IP)

1. 传输层的主要功能是什么?2. 传输层如何区分不同应用程序的数据流?3. 传输层有哪些协议?4. 什么是UDP协议?5. 为什么有了UDP,还需要TCP?6. 什么是TCP协议?7. 怎么理解协议和程序?8. TCP是否真的有链接?9. 链接是如何建立的(逻辑上)?10. 所谓的建立TCP链接开销很大,具体是指什么?11. 三次握手的目的是什么?12

2015-07-24 16:21:51 814

转载 图片的三级缓存策略(内存LruCache+磁盘DiskLruCache+网络Volley)

在开发安卓应用中避免不了要使用到网络图片,获取网络图片很简单,但是需要付出一定的代价——流量。对于少数的图片而言问题不大,但如果手机应用中包含大量的图片,这势必会耗费用户的一定流量,如果我们不加以处理,每次打开应用都去网络获取图片,那么用户可就不乐意了,这里的处理就是指今天要讲的缓存策略(缓存层分为三层:内存层,磁盘层,网络层)。  关于缓存层的工作,当我们第一次打开应用获取图片时,先到网

2015-07-17 13:59:49 6386 1

转载 Android 表情功能的完整处理方案

概述1.原理和实现思路2.表情图片显示3.表情面板4.表情的输入框插入和删除5.表情添加脚本Android中表情功能,一般都不是用ImageView去设置图片实现的,表情一般会嵌套在文本之中,那么如何实现呢,这里就介绍一下其中的原理,此外还有相关功能的实现思路和具体代码先看下良心动态图~--------------

2015-07-15 16:20:32 10159 4

转载 ListView加载速度/性能优化方案分析

Adapter是listview和数据源间的中间人.当每条数据进入可见区域时,adapter的getview()会被调用,返回代表具体数据的视图.触摸滚动时,频繁调用.支持成百上千条数据.下面为显示每条数据的xml文件:1.最简单的方法,最慢且最不实用public View getView(int pos, View convertView,ViewGroup

2015-07-15 15:16:09 1271

转载 Android开发代码编写规范

Android开发之命名规则1、不要使用拼音命名名称应简洁而富于描述,使用完整单词,避免使用缩写(除非该缩写被更广泛使用,例如URL、HTML)2、包命名包名由小写的字母组成,默认以com.xin126.android.betterus开头,然后接上根据功能划分的模块名。com.xin126.android.betterus.ui com.xin126.

2015-07-09 09:09:36 873

原创 不应该把数据放在 Application 中

在开发中不应该把数据放在 Application 中,因为这事不安全的做法,可能你在接一个电话后回来,你的App 会 由于 NullPointerException 而crash,这事由于你的Application可能是被系统回收掉了,当你再回来的时候又创建了一个新的,从而丢失了你之前的数据:解决办法你可以选择以下之一:1.通过Intent 显示的在Activity 间传递数据

2015-07-02 10:13:58 683

转载 Android自定义控件View的探讨

做过了一段时间的安卓开发都会接触到自定义控件,那么对于自定义控件大家都有什么样的看法呢?自定义控件他的优势是明显的,设计他的思想又有哪些呢?会用到什么模式呢?希望大家看了这个文章之后,可以发表自己对于自定义控件的看法和思想,这个帖就是为了跟大家交流而发。下面是我自己的一些看法,大侠们请指导!!!自定义View:在这里我们先来了解自定义控件view所需要的一些基础知识,以及常见做法。

2015-06-02 10:01:44 3128

转载 不要在Android的Application对象中缓存数据!

说明  这是翻译老外的一篇文章,我之前有遇到过这个问题,并且看到有人在Segmentfault上问,最主要我在StackOverflow上居然没搜到累死问题,所以觉得有必要翻译过来以便后面不会再这样处理。前言  在你的App中的很多地方都需要使用到数据信息,它可能是一个session token,一次费时计算的结果等等,通常为了避免Activity之间传递数据的开销,会将这

2015-05-12 18:35:11 7105 2

转载 Android 性能调优点

主要包括同步改异步、缓存、Layout优化、数据库优化、算法优化、延迟执行。1. 同步改异步这个就不用多讲了,耗时操作放在线程中执行防止占用主线程,一定程度上解决anr。但需要注意线程和service结合(防止activity被回收后线程也被回收)以及线程的数量线程池使用可见java的线程池 2. 缓存java的对象创建需要分配资源较耗费时间

2015-05-08 10:10:05 585

原创 EditText 防止自动弹出软键盘

在父布局中 EditText 的前面 加上:<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:focusable="true" android:focusableInTouchMode="true" an

2015-04-29 14:35:38 517 1

转载 Android 监听屏幕锁屏,用户解锁

public class ScreenListener { private Context mContext; private ScreenBroadcastReceiver mScreenReceiver; private ScreenStateListener mScreenStateListener; public ScreenListener(Contex

2015-04-24 11:04:55 1186

SlidingMenu

SlidingMenu-master 代码

2013-10-22

安卓源码60

Android精典案例60个

2013-10-22

空空如也

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

TA关注的人

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