- 博客(78)
- 收藏
- 关注
原创 平台换行符
对于换行符号不同的平台下存在不同的标准。windows : "\r\n"linux/unix : "\r"Mac : "\n"通过使用System.getProperty("liine.separator")可以获取当前平台下的换行符
2018-03-24 20:36:09
260
原创 App路由简记(一)
需求的整理复杂场景带来的烦恼随着产品的迭代,产品之下所产生的场景(Activity)也不断的增加,这些增加带来了更多场景的复杂性。而这些复杂场景的成本也不断叠加到目前我们产品中的直达中。所以为了让自己轻松点,让程序猿的懒惰精神发挥到极致,需要重新对这块进行重新整理。搜索下市场上的方案搜索了解了下已经有的方案,发现实际有详细说明的不多,其中有百度,腾讯上的Deep lin
2016-10-23 22:00:13
521
转载 ScrollView与HorizontalScrollView 简单改变边界拉伸距离
重写 :overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent)int deltaX, int de
2014-11-25 17:59:51
1043
转载 FontMetrics字体属性|Panit字体信息获取(笔记)
Canvas 作为绘制文本时,使用FontMetrics对象,计算位置的坐标。 它的思路和java.awt.FontMetrics的基本相同。 FontMetrics对象它以四个基本坐标为基准,分别为:・FontMetrics.top・FontMetrics.ascent・FontMetrics.descent・FontMetrics.bottom 该图片将
2014-11-25 17:04:35
967
转载 安全的应用内广播
在Android系统中,BroadcastReceiver的设计初衷就是从全局考虑的,可以方便应用程序和系统、应用程序之间、应用程序内的通信,所以对单个应用程序而言BroadcastReceiver是存在安全性问题的,相应问题及解决如下:1、当应用程序发送某个广播时系统会将发送的Intent与系统中所有注册的BroadcastReceiver的IntentFilter进行匹配,若匹配成功则执行
2014-11-25 16:13:02
765
转载 ThreadLocal——产生线程专有的变量(笔记)
首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每个线程中的new 对象 的操作来
2014-11-25 09:37:10
457
转载 requestWindowFeature使用详解
requestWindowFeature可以设置的值有: // 1.DEFAULT_FEATURES:系统默认状态,一般不需要指定 // 2.FEATURE_CONTEXT_MENU:启用ContextMenu,默认该项已启用,一般无需指定 // 3.FEATURE_CUSTOM_TITLE:自定义标题。当需要自定义标题时必须指定。如:标题是一个按钮时
2014-11-24 16:33:23
292
转载 WindowManager|WindowManagerImpl|CompatModeWrapper|LocalWindowManager
悬浮窗口的实现涉及到WindowManager(基于4.0源码分析),它是一个接口,实现类有WindowManagerImpl,CompatModeWrapper(WindowManagerImpl的内部类),LocalWindowManager(Window的内部类),它们之间的关系如下图的类图: WindowManagerImpl: 1.是Wi
2014-11-23 15:42:52
977
转载 installDecor()的流程 | windowSytle| Theme|Feature设置(笔记)
private void installDecor(){ if(mDecor == null){ mDecor = generateDecor(); mDecor.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS); mDecor.setIsRootNamespace(tr
2014-11-23 12:53:12
1040
转载 心跳连接的替换--性能提升(comet)
昨天看了comet的介绍后,虽然大概知道了comet的原理,不过没实际用过还是不太清楚,于是今天又在网上翻了一下别的网友共享的comet实现http长连接的例子,在Comet Server Push 技术介绍 一文中分别提到了 ”基于长轮询(long polling)“、”基于iframe“、”基于流(stream)“三种实现comet的方式,下面我将网上找到的对应的例子链接做个汇总,就当
2014-11-19 14:34:52
832
原创 同步任务处理:异步线程中实时更新视图的处理(笔记)
公司用法:在异步线程中使用上级类且唯一的Handler,去代理整个工作流程中的界面修改,包括在使用异步线程的类中,也由该Handler 去做代理,而抛弃了AsyncTask在doInBackage过程中的使用。这样做的好处是调用并引用其他类的方法的时候可以向下传递这个界面修改的代理(在方法中预留一个Handler参数,提供Handler传递的入口),相当于总控,节约了内存空间(空间换时间了
2014-11-18 18:01:45
545
转载 Android堆和栈
1、dalvik的Heap和Stack这里说的只是dalvik java部分的内存,实际上除了dalvik部分,还有native。这个以后再说。下面针对上面列出的数据类型进行说明,只有了解了我们申请的数据在哪里,才能更好掌控我们自己的程序。2、对象实例数据实际上是保存对象实例的属性,属性的类型和对象本身的类型标记等,但是不保存实例的方法。实例的方法是属于数据指令,是保存在St
2014-11-17 14:28:05
591
转载 StackOverflowError 错误(笔记)
描述:由于栈调用的层次太多,超过了虚拟器dalvik的最大限制(作为一个虚拟器参数,可定制)导致的。当程序编写错误导致无限递归调用时会触发,此外程序正确但是递归调用的层次过深也会触发。
2014-11-17 11:30:42
415
原创 android:process 使用说明
android:process=":remote":代表在应用程序里,当需要该service时,会自动创建新的进程
2014-11-17 10:19:25
589
转载 AlarmManager类的应用(实现闹钟功能)
1、AlarmManager,顾名思义,就是“提醒”,是Android中常用的一种系统级别的提示服务,可以实现从指定时间开始,以一个固定的间隔时间执行某项操作,所以常常与广播(Broadcast)连用,实现闹钟等提示功能2、AlarmManager的常用方法有三个:(1)set(int type,long startTime,PendingIntent pi);该方法用于设置一次性闹钟
2014-11-14 17:31:24
446
转载 内存泄露防治
Java内存管理机制在C++ 语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。 Java 语言对内存管理做了自己的优化,这就是垃圾回收机制。 Java 的几乎所有内存对象都是在堆内存上分配(基本数据类型除外),然后由 GC ( garbage
2014-11-13 16:12:19
386
转载 基于第三方开发Android锁屏
zhuan zhttp://blog.youkuaiyun.com/stevenhu_223/article/details/8831534
2014-11-13 15:09:46
1554
转载 Activity的task相关
http://blog.youkuaiyun.com/liuhe688/article/details/6761337古人學問無遺力,少壯工夫老始成。紙上得來終覺淺,絕知此事要躬行。南宋.陸遊《冬夜讀書示子聿(yù)》软件行业也是一样,多少前辈不遗余力的奋斗才出现了软件行业的繁荣的景象,其中已有不少成为大师级人物。今天我们站在伟人的肩膀上,自然会有不少的优势,但不要忘了,要在对技术的认知方
2014-11-13 06:54:55
322
原创 Activity 中的 Dialog 创建(笔记)
/** * Base class for Dialogs. * * Note: Activities provide a facility to manage the creation, saving and * restoring of dialogs. See {@link Activity#onCreateDialog(int)}, * {@link Activity#onPrep
2014-11-12 17:55:34
521
转载 android.view.WindowManager.LayoutParams.flags
FLAG_NOT_TOUCH_MODAL:当窗口可以获得焦点(没有设置 FLAG_NOT_FOCUSALBE 选项)时,仍然将窗口范围之外的点设备事件(鼠标、触摸屏)发送给后面的窗口处理。否则它将独占所有的点设备事件,而不管它们是不是发生在窗口范围内。FLAG_WATCH_OUTSIDE_TOUCH:如果你设置了FLAG_NOT_TOUCH_MODAL,那么当触屏事件发生在窗口之外
2014-11-12 16:01:34
1139
转载 Android自定义属性,attr format取值类型
1. reference:参考某一资源ID。 (1)属性定义: background" format = "reference" /> (2)属性使用: android:layout_width = "42di
2014-11-11 14:58:09
361
转载 android布局的两个属性dither和tileMode
首先,两个单词的中文意思分别是dither(抖动)和tileMode(平铺)1,先来介绍tileMode(平铺)它的效果类似于 让背景小图不是拉伸而是多个重复(类似于将一张小图设置电脑桌面时的效果)[html] view plaincopyxml version="1.0" encoding="utf-8"?> Li
2014-11-10 16:43:42
631
转载 Android自定义进度条
Android原生控件只有横向进度条一种,而且没法变换样式,比如原生rom的样子很丑是吧,当伟大的产品设计要求更换前背景,甚至纵向,甚至圆弧状的,咋办,比如ok,我们开始吧: 一)变换前背景 先来看看progressbar的属性: android:id="@+id/progressBar" style="?
2014-11-10 14:59:48
355
转载 Android ProgressDialog 自定义方法
原文:http://www.oschina.net/question/8676_11797项目当中遇到这样一个应用场景:执行某个操作需要耗时15秒以上,依照惯例,这就要使用到进度条一类的UI控件,以安抚用户等待的烦躁心情。Android Framework已经提供了ProgressDialog,可以很好的解决这个问题。ProgressDialog实际上是AlertDialog的子类
2014-11-10 14:52:10
539
转载 android中的Plurals(Quantity Strings)类型
不同的语言对数量的定义有不同的语法规则。例如,在英语中,1个指的是一种特殊情况。其他时候我们说n个。这种单数和复数的情况非常的普通。但其他语言却有明显的区别。Android中设置了0,1,2,"很少",“许多”和“其他”做为数量表述。对于给定的语言和数量,决定使用那种情况是非常的困难和复杂的。Android提供了getQuantityString()来帮助我们决定选择适当的资源。语法:
2014-11-10 12:32:15
1542
转载 Android中滑屏初探 - scrollTo 以及 scrollBy方法使用说明
今天给大家介绍下Android中滑屏功能的一个基本实现过程以及原理初探,最后给大家重点讲解View视图中scrollTo 与scrollBy这两个函数的区别 。 首先 ,我们必须明白在Android View视图是没有边界的,Canvas是没有边界的,只不过我们通过绘制特定的View时对 Canvas对象进行了一定的操作,例如 : translate(平移)
2014-11-07 17:39:48
298
转载 SystemClock 应用
1、System.currentTimeMillis()是一个标准的“墙”时钟(时间和日期),表示从纪元到现在的毫秒数。该墙时钟能够被用户或电话网络(见setCurrentTimeMillis(long))设置,所以该时间可能会向前或向后不可预知地跳越。该时钟应该仅仅被使用在当现实世界的对应的日期和时间是重要的情况,例如一个日历或闹钟应用程序。而间隔时间和经过时间应该使用不同的时钟。如果你使用Sy
2014-11-07 16:56:49
410
转载 Http 笔记
1. Http 访问方式 1.1 HttpPost 1) setEntity() //设置请求参数 1.2 HttpGet2. Http 客户端代理 2.1 HttpClient 1) execute( HttpUriRequest request ) //request 为访
2014-11-06 15:24:30
356
转载 ReentrantLock和synchronized两种锁定机制的对比
图 1 和图 2 中的图表以每秒调用数为单位显示了吞吐率,把不同的实现调整到 1 线程 synchronized 的情况。每个实现都相对迅速地集中在某个稳定状态的吞吐率上,该状态通常要求处理器得到充分利用,把大多数的处理器时间都花在处理实际工作(计算机随机数)上,只有小部分时间花在了线程调度开支上。您会注意到,synchronized 版本在处理任何类型的争用时,表现都相当差,而Lock 版本在调
2014-11-05 14:04:33
507
转载 ReentrantLock
ReentrantLock是一个可重入的互斥锁,ReentrantLock由最近成功获取锁,还没有释放的线程所拥有,当锁被另一个线程拥有时,调用lock的线程可以成功获取锁。如果锁已经被当前线程拥有,当前线程会立即返回。此类的构造方法提供一个可选的公平参数[html] view plaincopyprint?public ReentrantLock(boolean fa
2014-11-05 10:12:11
297
转载 concurrent用法详解
我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供了这些功能,但是这些依然没有JDK自带的功能使用起来方便。而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait()、notify()和synchronized等,每每需要考虑性能、死锁、公平性、资源管理以及如何避免线程安全性方面带来的
2014-11-04 16:55:11
672
转载 android获得控件在屏幕中的绝对坐标 getLocationInWindow 和 getLocationOnScreen
int[] location = new int[2] ;view.getLocationInWindow(location); //获取在当前窗口内的绝对坐标view.getLocationOnScreen(location);//获取在整个屏幕内的绝对坐标location [0]--->x坐标,location [1]--->y坐标getLocationOnScr
2014-11-04 11:21:12
379
转载 ScheduledExecutorService定时周期执行指定的任务
一:简单说明ScheduleExecutorService接口中有四个重要的方法,其中scheduleAtFixedRate和scheduleWithFixedDelay在实现定时程序时比较方便。下面是该接口的原型定义java.util.concurrent.ScheduleExecutorService extends ExecutorService extends Execut
2014-11-03 10:16:21
421
原创 Activity isFinishing()函数使用(笔记)
isFinishing() : 判断this Activity是否finish,自己调用或者某种因素请求finish,经常用在onPause函数里面
2014-10-30 14:39:22
1448
转载 Android中WindowManager.LayoutParams类详解
WindowManager.LayoutParams 是 WindowManager 接口的嵌套类;继承于 ViewGroup.LayoutParams 。 它的内容十分丰富。其实WindowManager.java的主要内容就是由这个类定义构成。下面来分析一下这个类: 定义 public static class WindowM
2014-10-27 16:41:00
546
转载 Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
今天继续给大家分享下View的相关知识,重点有一下两点: 1、View的几种不同状态属性 2、如何根据不同状态去切换我们的背景图片。开篇介绍:android背景选择器selector用法汇总 对Android开发有经验的同学,对节点的使用一定很熟悉,该节点的作用就是定义一组状态资源图片,使其能够
2014-10-27 14:00:46
521
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人