- 博客(34)
- 资源 (1)
- 收藏
- 关注
原创 代码打点统计应用耗时
在移动应用开发中,我们有时需要监测一些流程的耗时,比如应用启动耗时,页面跳转耗时等,仅仅凭借肉眼来观察很不准确,我们可以通过几种方式来实现,一种方法是通过shell来获取启动耗时,一种是通过代码打点输出耗时,还有一种通过插桩,这里简单介绍下前两种。一、adb shell am方式使adb shell获取应用真实启动时间代码如下:adb shell am start -W [packageNa...
2018-11-01 23:53:15 2193
原创 Android自定义View之刻度尺滑动功能(一)
在Android开发中,有时候难免会遇到需要绘制图形图像的功能需求,针对这类需求,我们可以采用分解功能点,先易后难,逐个击破的策略。这里以可滑动的刻度尺功能为例,进行自定义View的探讨和学习。首先,绘制一个刻度尺有最基本的几个要素:最大刻度、最小刻度、底部横线、每一个刻度的大小等,当然我们还需要绘制文字,刻度尺起始位置,刻度尺也需要有颜色等。这些自定义属性我们可以直接写在attrs.xml文件中。
2016-12-31 10:17:03 3761 3
原创 Android资源文件中xliff标签的使用
在一些Android项目中,有时会发现一部分资源字符串在 /res/values/string.xml文件中,包含一些类似 的写法,这里的xliff全称是XML Localization Interchange File Format,中文名是XML本地化数据交换格式,用来标记不应翻译的消息部分。典型的写法如下:<string name="countdown"> <xliff:g id="
2016-12-05 11:51:34 5413
原创 Android多线程开发之AsyncTask的使用
一、AsyncTask简介AsyncTask是一种轻量级的异步任务类,它内部封装了Handler和Thread,能将后台线程执行的进度和最终的结果分发到UI线程中进行处理,通过AsyncTask可以更加方便地执行后台任务。AsyncTask并不构成一个通用的线程处理框架,理想情况下它只应该用于短时间的操作(最多几秒钟),若是需要保持线程运行较长一段时间的话,Google推荐我们使用java.util
2016-09-30 17:10:55 1292
原创 Java中类加载的执行顺序
一、Java中的类加载demo顶层基类Base.java:public class Base { public static int a = 10; public int b = 20; static { System.out.println("----Base---: Static Init Base " + a); // Syste
2016-09-29 16:46:36 9164 3
原创 Java中的类加载机制
一、Java的类加载简介先了解一个基本概念,类的初始化。 当程序使用某个类时,如果该类还没被初始化,加载到内存中,则系统会通过加载、连接、初始化三个过程来对该类进行初始化,该过程称为类的初始化。那么类加载又是啥呢?说到类加载就必须要知道java.lang.ClassLoader类,它的基本职责就是根据一个指定的类的名称,找到或者生成其对应的字节代码,然后从这些字节代码中定义出一个Java 类,
2016-09-29 16:33:19 565
原创 Android多线程开发之IntentService的使用
一、IntentService简介我们看下官方对其的解释:/** * IntentService is a base class for {@link Service}s that handle asynchronous * requests (expressed as {@link Intent}s) on demand. Clients send requests * through {
2016-09-23 20:54:45 1222
原创 Android多线程开发之HandlerThread的使用
初次看到HandlerThread的名字,我们可能会联想到Handler和Thread这两个类,没错,它其实就是跟Handler和Thread有莫大的关系。HandlerThread继承自Thread,它本质上就是一个Thread,而且专门用来处理Handler的消息。一、HandlerThread简介看看官方对它的解释: Handy class for starting a
2016-09-23 20:49:39 12709
原创 Eclipse下Android NDK开发环境搭建
第一步,下载ADT和NDK**最新的ADT(Android Development Tool)包含有ADT插件及NDK插件,不过对于ADT,官网已经不提供下载了,我们可以到第三方平台下载,然后在Eclipse中进行安装。然后下载NDK,并进行解压,解压路径最好不要有中文路劲(你们懂的),官网下载链接:https://developer.android.com/ndk/downloads/index.
2016-09-23 20:44:23 2436
原创 Android中Handler机制的理解
一、为什么需要Handler在早些年刚开始接触Android开发时,就曾遇到过这样一个异常,当我们在子线程中更新UI界面时会出现: android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views,翻译过来就
2016-09-06 00:28:35 997
原创 Java中String、StringBuffer及StringBuilder的区别
1、GLSurfaceView的特性:管理一个surface,这个surface就是一块特殊的内存,能直接排版到android的视图view上;管理一个EGL display,它能让opengl把内容渲染到上述的surface上;让渲染器在独立的线程里运作,和UI线程分离。2、关于Android中ContentValues类说法正确的是:他和Hashtable比较类似,也是负责存储一些键值
2016-09-05 21:34:32 1007
原创 Android中ImageSpan的使用
在Android中,TextView只用于显示图文混排效果,而EditText不仅可显示,也可混合输入文字和图像。这其中必不可少的一个类便是ImageSpan。要想在TextView中设置不同颜色、大小、图文混排的效果,必须通过SpannableString的setSpan()方法来实现。//SpannableString.javapublic void setSpan(Object
2016-09-03 22:00:14 19618 1
原创 Android中Emoji的处理
一、Emoji的前世今生1、Emoji的诞生Emoji表情是一种视觉上的速记符号,最初是在1999年由一个名叫Shigetaka Kurita(栗田穣崇)的日本人发明的。 而后随着发展,出现了统一码联盟(The Unicode Consortium),它的主要工作就是统筹统一码(Unicode)的发展。作为一种字符编码,Unicode的出现主要是为了解决现存编码不能够在多语言电脑环境中使用的问题。
2016-09-03 21:06:12 19408 1
原创 Android面试知识(4)
30、简要解释一下Activity、 Intent 、Intent Filter、Service、BroadcastReceiver。一个activity呈现了一个用户可以操作的可视化用户界面。所有程序的流程都运行在Activity之中,Activity具有自己的生命周期(由系统控制生命周期,程序无法改变,可以用onSaveInstanceState保存其状态)。Intent用于启动Activity
2016-09-01 22:59:38 824
原创 Android面试知识(3)
22、请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。Handler定义: 一个Handler允许你发送和处理Message和Runable对象,这些对象和一个线程的MessageQueue相关联。每一个线程实例和一个单独的线程以及该线程的MessageQueue相关联。当你创建一个新的Handler时,它就和创建它的线程绑定在一起了。这
2016-09-01 22:57:58 803
原创 Android面试知识(2)
14、页面上现有ProgressBar控件progressBar,请用手写线程以10秒的的时间完成其进度显示工作。import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.widget.ProgressBar;public class ProgressBa
2016-09-01 22:55:10 931 3
原创 Android面试知识(1)
1、GLSurfaceView的特性:管理一个surface,这个surface就是一块特殊的内存,能直接排版到android的视图view上;管理一个EGL display,它能让opengl把内容渲染到上述的surface上;让渲染器在独立的线程里运作,和UI线程分离。2、关于Android中ContentValues类说法正确的是:他和Hashtable比较类似,也是负责存储一些键值
2016-09-01 22:52:53 722
原创 Android几种解析XML方式的比较
XML介绍:Extensible Markup Language,即可扩展标记语言一、使用SAX解析XMLSAX(Simple API for XML) 使用流式处理的方式,它并不记录所读内容的相关信息。它是一种以事件为驱动的XML API,解析速度快,占用内存少。使用回调函数来实现。 缺点是不能倒退。二、使用DOM解析XMLDOM(Document Object Model) 是一种用于XML文
2016-08-30 17:32:33 12448
原创 Android中Math类Math.floor()、Math.round()及Math.ceil()等方法的使用
1、Math.floor()先看定义:/** * Returns the double conversion of the most positive (closest to positive * infinity) integer value less than or equal to the argument. * <p> * Special cases: * <ul> * <li>
2016-08-30 15:44:51 12976 1
原创 Android中getX()、getRawX()、getScrollX()、scrollTo()、scrollBy()等的区别
一、getX()和getRawX()及getLeft()、getRight()等的区别 getLeft , getTop, getBottom, getRight表示控件在parent中的相对位置。 getX()是表示Widget相对于自身左上角的x坐标,而getRawX()是表示相对于屏幕左上角的x坐标值getX()的不同点: 若是view用了自己的onTouch事件,即
2016-08-30 11:45:22 1609 1
原创 Activity的隐式调用和显示调用
在实际开发中,我们知道Activity之间及Android应用程序之间的通信都少不了Intent的使用,而Intent主要负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,然后Android据此Intent的描述来找到对应的组件,将Intent传递给调用的组件,并完成组件的调用。Intent分为两种:显式Intent(Explicit intent):通过指定Intent组件名称来实现的
2016-08-29 14:39:36 5112
原创 Git基本命令使用
由于今年转向Framework开发了,进来发现公司内部使用的都是Git作为版本控制,来之前使用的也不多,进来后也使用了将近半年了,都会用了,但命令还是不太容易记住,所以在这里做一个记录,毕竟好记性不如烂笔头。 注:以下内容从博文http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/学习总
2016-08-29 11:23:26 2097
原创 UML常用的几种关系的总结
最近在看博客,里面涉及到很多的类图,流程图,虽然说以前学过UML相关的课程,但毕竟过了这么久了,对这几种概念早已模糊不清了,所以索性借着这次看博客的时间,把这几种概念再重新梳理总结一遍,以备再次查看之用。一、泛化(Generalization) 泛化,是一种继承关系, 表示一般与特殊的关系, 它指定了子类如何特化父类的所有特征和行为。在Java中此类关系通过关键字extends明确标识。例如:
2016-08-25 17:08:48 644
原创 Windows7下固态硬盘安装Linux Mint 18双系统
一.前言 Linux Mint是一种基于Ubuntu或Debian开发出的Linux桌面操作系统,于2006年开始发行,致力于为家庭用户和企业用户提供一个免费、高效、易用、高雅的桌面操作系统。目前最新的稳定版本是Linux Mint 18,它基于ubuntu16.4,是一个长期支持版本,代号”Sarah”。作为之前使用过不同桌面Linux版本的用户,我个人觉得Linux Mint给我的是一种相
2016-08-21 00:13:58 9886
原创 Android中通过WebView获取Html中的隐藏域
Android通过WebView获取Html中的隐藏域package com.example.administrator.test;import android.content.Context;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.
2015-05-18 18:36:35 2840
原创 Android Studio下Ant的配置以及打包jar文件
近年来,由于公司项目的越来越庞大和复杂,我们的项目走上了插件化开发之路,由于之前一直是用Eclipse开发的,而Eclipse里面本身集成了Ant脚本的,所以模块化编译打包发版都很方便,成熟。但是考虑到以后Google可能更重视AndroidStudio的维护,对于我们这些还有着很长程序开发之路要走的人来说,学习这个新的IDEA很有必要,况且公司项目主要还是用Eclipse来开发的,为了保持相同的
2015-02-06 16:28:38 10051
原创 Ubuntu14.04下AndroidStudio中的中文乱码解决
sudo cp simsun.ttc /usr/share/fontscd /usr/share/fontssudo chmod 644 simsun.ttc更新字体缓存:代码:sudo mkfontscale代码:sudo mkfontdir代码:sudo fc-cache -fsv
2014-07-23 12:50:39 1418
翻译 Java中单例设计模式之最佳实践举例
单例模式(Singleton)是四大设计模式之一,归类于创建型模式。从定义上来看,它似乎是非常简单的设计模式,但是当去实现它的时候,却又带来了很多实现方面的担忧。单例模式的实现一直是开发者之间的一个有争议的话题。在这里,我们将了解单例设计模式的原则,不同的方式来实现单例模式和一些使用上的最佳实践。单例模式 单例模式限制了类的实例,并确保在Java虚拟机中有且仅有一个类的实例的存在。这
2014-01-05 15:46:55 1536
原创 Android手机号码归属地查询
在贴出代码之前,还是先普及一下手机号码的知识吧。1、国内手机号码长度为11位目前,我国国内所用的手机号码的长度一般为11位,是世界上最长的手机号码。11位数的号码足够容纳上百亿个号码了,而目前中国人口也只不过十来亿人,因而把首位的“1”给固定下来了,第二位数字换一个数字就又能增加10亿个号码的容量啦。2、国内的手机号码大多以13及13以后的号码开头因为10,11,12开头的大多作为
2014-01-04 18:55:54 3143
转载 程序员的困境
看到一篇不错的文章,分享给大家。转载自https://medium.com/i-m-h-o/231d7499a75Programmer’s dilemmaRecently I interviewed tens of candidates for a kernel programmer’s position. These candidates are from big
2013-08-17 17:42:48 692
翻译 排名靠前的5个编程论坛
5- Dev Shed ForumsDev Shed 论坛有着1,615,198个成员3,445,464,个主题。它有着足够多的地方讨论与程序相关的问题,你不仅能问程序相关的问题,而且还能问关于网页设计,网站管理,数据库,系统管理,操作系统,虚拟主机,电脑硬件和许多其他的主题的问题。Dev Shed论坛在Alexa 全球排名是3480名,在印度的排名是1093名。[LINK]
2013-05-19 09:32:44 3935
原创 汉诺塔问题
问题介绍:略求解方法:1.递推求解移动次数 (1),当n=1时,只有一个盘,移一次。 当n=2时,先将小盘从A桩移到B桩,然后把大盘从A桩移到C桩,最后把小盘从B桩移到C桩,移3次完成。 设移动n个盘的汉诺塔需要g(n)次完成,则分3个步骤: 1)将n个盘上面的n-1个盘借助C桩从A桩移到B桩,
2012-09-07 09:11:12 1236
Android手机号码归属地查询(本地数据库)
2014-01-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人