
android
文章平均质量分 58
zhou12314456
这个作者很懒,什么都没留下…
展开
-
Android电池管理体系(二)
在前面的文章中我们提到了Android电池模块中的驱动层,该层主要通过充电芯片驱动去读取电池电量,电池状态等信息。在我们在驱动中拿到电池电量信息的时候是怎么一步步传到Android层的,在这里就需要提到health模块。health模块是Android4.4以后推出的,主要用于向下读取电池驱动中的电量信息,然后向上传递给Framwork中的BatteryService. 该篇...原创 2018-02-28 18:55:35 · 859 阅读 · 1 评论 -
Android---OnTrimMemory优化
一:概述: OnTrimMemory是android4.0以后提供的一个Api,它的主要作用是提示开发者在内存不足的时候去释放资源,从而避免被系统杀死,这样应用在下一次启动的时候,速度会比较快(如果不被杀掉,启动的时候就是热启动,否则就是冷启动,速度相差2-3倍)。二: 任何实现了ComponentCallbacks2接口的类都可以重新实现这个方法(Application,Act原创 2016-07-28 16:33:09 · 458 阅读 · 0 评论 -
探索view的触发事件
/** * 当有按键按下时触发 * @param keyCode * @param event * @return */@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { Log.e("flag","onKeyDown"); return super.onKeyDown(keyCode, e原创 2016-06-18 23:14:41 · 507 阅读 · 0 评论 -
探索View的生命周期方法
view的生命周期方法:/** *当View中所有的子控件均被映射成xml后触发 */@Overrideprotected void onFinishInflate() { super.onFinishInflate(); Log.e("flag","onFinishInflate");}/** * 当view被附着到一个窗口时触发 */@Overrid原创 2016-06-18 22:09:26 · 389 阅读 · 0 评论 -
自定义控件之RoundView
自定义控件一般分为分为4种,继承现有空间的 view 和 viewGoup, 还有就是自定义 view 和 viewGroup,今天我们以第一种情况为例,继承ImageView实现一个圆形图片和矩形圆角图片第一步: 定义自定义控件继承ImageView类,重写构造方法,一般重新两个就可以了,其他的构造函数我们用不到,构造函数的第三个第四个是 主题原创 2016-06-18 14:40:16 · 1355 阅读 · 0 评论 -
edittext只能输入数字和小数点时并且小数点后只能输入两个小数
给EdItext设置这个属性et_dollar.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);(只设置后面这个属性的话在一些手机上不能输入小数点)et_dollar.addTextChangedListener(new TextWatcher() { @Overrid原创 2016-06-17 12:05:37 · 4246 阅读 · 0 评论 -
edittext只能输入数字和小数点,且小数点后只能输入两位
1.在edittext的xml中输入属性android:inputType="numberDecimal"2.在edittext的监听中 et_dollar.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s,原创 2016-06-14 14:43:47 · 2321 阅读 · 0 评论 -
Activity正常情况及非正常情况生命周期探索
一:概述: 本文通过Activity的生命周期,启动模式,任务栈来对Activity进行阐述二:生命周期 1. 正常情况的生命周期 1.1:正常流程:onCreate():创建,可以在这里面做初始化工作onStart(): 表示Activity已经启动,但不可交互onResume(): 可交互状态,说明该原创 2016-02-13 18:44:43 · 488 阅读 · 0 评论 -
如何更改studio的svn地址
当我们的项目的服务器地址换的时候,我们需要在studio中重新定位项目地址第一步:这一步一般会报错第二步:第三步:重新再执行第二步操作原创 2016-06-04 07:25:40 · 3193 阅读 · 0 评论 -
android微信支付开发流程
今天做了微信支付,总结一下流程: 1.创建一个广播 public class AppRegister extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { final IWXAPI msgApi = WXAPIFact原创 2016-06-02 23:47:28 · 1557 阅读 · 0 评论 -
Android消息机制------Handler机制的原理(超详细)
一:Handler,Message 与Looper1.Handler是androihd消息机制的上层接口,他的主要作用就是将一个任务切换到handler所在的线程去执行,它的内部主要依赖MessageQueue和Looper工作2.大概流程 :当handler的send方法调用时,它会调用MessageQueue的enqueueMessage方法将这个消息放在消息队列中,然后Looper发原创 2016-03-29 10:53:20 · 785 阅读 · 1 评论 -
java.lang2.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/widget/TintManager;
在使用design中tablayout时,报了如下异常: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/widget/TintManager;原创 2016-08-04 16:00:23 · 4356 阅读 · 2 评论 -
Android电池管理体系(一)
电池管理在Android系统中是一个重要的组成部分,它起的主要作用是检测我们的电池状态,剩余电量实时更新,高温报警,低电量关机等功能的实现。Android的电池管理模块,从内核层到Android的应用层我大概分为了4层来理解,从上到下依次为,应用展示层,framwork层,本地框架层,内核驱动层,计划用3篇文章从下到上对这四个模块进行一个大概的介绍。 ...原创 2018-02-26 17:00:24 · 845 阅读 · 0 评论 -
Android应用性能如何优化
一: android程序的优化主要分为4种优化:启动速度方面,UI卡顿方面,内存泄漏方面,内存溢出方面二:下面依次对这四个方面进行大概介绍1.启动速度:不应在Applicati以及Activity的生命周期回调中做任何费时操作,具体指标大概是你在onCreate,onResume,onStart等回调中所花费的总时间最好不要超过400ms,否则用户在桌面点击你的应用图标后,将感觉到明显的卡顿。特别原创 2017-11-01 21:39:31 · 863 阅读 · 0 评论 -
Android平台调用so库中函数的流程及一些坑
一.Android平台如果要调用一些C/C++语言的所编译生成的库的函数一般要进行一下几个步骤。 1.确保我们的so库是用 ndk 或者 arm-linux-androideabi-gcc编译而成,如何编译参考上一篇文章。 2.如果我们的安卓应用程序是在studio中开发用java所写,那么我们 需要配置以下内容:a: 去Android官网下载原创 2017-07-15 21:29:54 · 4338 阅读 · 0 评论 -
View框架之layout()流程
在上一篇我们分析了view的measure()流程,当我们把view测量出来以后,接着就要算出这个view的在这个屏幕的具体位置,所以这一篇我们接着分析layout()流程,废话不多说,还是先来一张流程图,下面会根据这个流程图进行讲解-注意:RootView是一个FrameLayout,所以也是一个ViewGroup - - layout()过程和measure()过程一样,起点都是在View原创 2016-11-02 14:10:16 · 538 阅读 · 0 评论 -
View框架之measure()流程
一:先来张View体系中measure()流程的时序图注意:1.以下MeasureSpec用ms来代替(ms具体会在后面介绍) 2.该时序图描述的是从ViewRootImpl开始的measure()过程,因为ViewRootImpl是window与view连接的枢纽 3.该时序图着重于大概流程及重要方法的作用,具体代码细节会放到后面介绍二:MesureSpec简介 (以下简称m原创 2016-11-01 01:06:42 · 831 阅读 · 0 评论 -
Anroid中View框架总结
一 view与window众所周知,Activity是四大组件中唯一能与我们直接交互的组件,因为每个Activity都有一个Window对象,因为我们的View只有与Activity相关联,这个view才能显示出来,查看我们setContentView()方法的源码,就可以看到在该方法中又调用了window的实现类phonewindow中的setContentView()方法,并且将我们的vi原创 2016-10-30 18:35:55 · 358 阅读 · 0 评论 -
View框架之draw()流程
在前两篇我们分别描述了View的测量和布局,今天我们就针对绘制的最后一步draw()进行分析。 在开始我们还是先贴张时序图,然后针对图中的方法进行梳理-- draw()流程相对于测量和布局要简单很多,我们还是从ViewRootimpl中的performDraw()开始分析 private void performDraw() { /** 省略部分代码 draw(原创 2016-11-03 17:15:11 · 801 阅读 · 0 评论 -
com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileExcep
当出现这种错误的时候就是两个jar之间出现了冲突,我们可以根据提示信息,在app/build.gradled中的ackagingOptions中配置不想添加到apk中的文件,例如com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Dupli原创 2016-08-06 11:56:50 · 2310 阅读 · 0 评论 -
android评星控件RatingBar
RatingBar是android自带的评分软件直接贴代码: <RatingBar android:id="@+id/ll_rb_star" style="@style/custom_ratingbar_style" android:layout_width="wrap_content" and原创 2016-05-21 00:00:36 · 2105 阅读 · 0 评论 -
github前100名的android开源库
分类: Android开源项目(1) 目录(?)[+]转自:http://www.codeceo.com/article/github-top-100-Android-libs.html本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据GitHub搜索Java语言选择 (Bes转载 2016-05-08 14:19:08 · 582 阅读 · 0 评论 -
安卓的4种线程池
第一种: FixedThreadPool 优点:线程量固定,都是核心线程,所以可以更快的响应 使用案例:Runnable runnable = new Runnable() { @Override public void run() { }};private void原创 2016-03-23 14:56:20 · 418 阅读 · 0 评论 -
IntentService的使用与优点
1.是一种服务,比较适合高优先级的后台任务 2.任务结束自动退出 3.IntentService是Service的子类,用来处理异步请求,IntentService在onCreate()通过HandlerThread开启一个线程 4.IntentService在onHandlerIntent()中处理完一个Intent请求的时候,如果后面没有intent请求的时候,会自动停止,如原创 2016-03-23 14:23:51 · 916 阅读 · 0 评论 -
利用UncaughtExceptionHandler捕获全局异常
先了解一下UncaughtExceptionHandler这个类,它的名字叫做未捕获异常处理器,当系统出现未捕获异常时,系统默认会弹出强制关闭窗口,用户体验非常不好,我们可以实现这个接口,可以做一些自定义的界面,并可以把异常信息保存到文本中,发送到服务器,一遍我们发现bug定义一个类,实现这个接口 public class ErrorHandler implements Thread.Unc原创 2016-03-10 14:57:05 · 393 阅读 · 0 评论 -
android支付宝支付流程
1. 配置清单文件 uses-permission android:name="android.permission.INTERNET" />android:name="android.permission.ACCESS_NETWORK_STATE" />android:name="android.permission.ACCESS_WIFI_STATE" />android:nam原创 2016-03-21 15:05:47 · 602 阅读 · 0 评论 -
ImageLoader的使用及总结
一: ImageLoader是一个强大的、可高度定制的图片缓存,简单的说就是ImageLoader就是通过url获取图片,显示在控件上,并通过url算法将图片缓存到内存和磁盘中二:使用ImageLoader的好处:1. 支持多线程,支持异步和同步加载2. 支持多种缓存算法,下载进度监听,ListView图片错乱3. 可配置度高。支持任务线程池、下载器、解码器、内存及磁盘原创 2016-03-01 15:20:00 · 908 阅读 · 0 评论 -
用recylerView实现瀑布流的效果
recylerView是v7包中一个新组件,它具有item回收复用的功能,用户只要实现自己的ViewHolder就可以了,该组件会自动帮你回收复用每一个item废话不多说,直接上代码 布局:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http原创 2016-02-17 11:51:01 · 713 阅读 · 0 评论 -
安卓动画之属性动画
一 属性动画概述: 属性动画是API11新加入的特性,和view动画不同,它可以对任何对象进行操作,甚至还可以没有对象,属性动画的默认间隔时间300ms,默认帧率10ms/帧,它的原理就是:在一段时间内完成一个对象一个属性值到另一个属性值的改变。 属性动画从API11以后才有,如果要兼容以前的版本,可以采用nineoldandroids,但是本质还是view动画二 属性原创 2016-01-24 22:37:31 · 428 阅读 · 0 评论 -
安卓动画之Frame动画
帧动画是按顺序播放一组预先定义好的图片,不同于View动画,系统提供了另外一个类AnimationDrawable来使用帧动画xml version="1.0" encoding="utf-8"?>xmlns:android="http://schemas.android.com/apk/res/android"android:oneshot="false">android:drawabl原创 2016-01-24 17:02:36 · 296 阅读 · 0 评论 -
安卓动画之Tween动画
一 动画框架概述: 在安卓的平台中有一套完整的动画框架,在安卓3.0之前,也就是API11以前,安卓一共有两种动画,就是补间动画(TweenAnimation)和逐帧动画(Fragme Aniamtion,Drawable Animation),在安卓3.0之后为增强与动画的交互出现了 属性动画(Property Animation). 因为Tween Anima原创 2016-01-24 17:01:22 · 561 阅读 · 0 评论 -
当使用ViewPager滑动发生java.lang.IllegalStateException: The specified child already has a parent.异常时的解决方案
这种异常是该控件在前面已经添加过一个父控件,当再次滑动重复执行instantiateItem方法,会重复添加,解决方法是先判断其父容器是否存在,如存在,先和此子控件解除关系代码如下:@Override public Object instantiateItem(View arg0, int arg1) // 实例化Item { /** * 防止向左滑动 */ Ima原创 2016-03-14 14:58:16 · 3844 阅读 · 0 评论 -
Viewstub的使用
ViewStub是一个轻量级的View,不占布局位置,占用系统的资源非常的少,它在刚开始的时候是看不见的,只有我们把它inflate()的时候它才会加载这个控件所包括的布局使用场景:当我们需要有选择的显示某个控件的时候我们可以使用这个控件,基本不占用资源注意事项:1.我们所要注意的是 ViewiStub只能inflate()一次,不能频繁使用2.ViewStub只能inflate原创 2016-04-07 15:09:39 · 314 阅读 · 0 评论 -
andorid推送技术
目录(?)[+]前言最近研究Android推送的实现, 研究了两天一夜, 有了一点收获, 写下来既为了分享, 也为了吐槽. 需要说明的是有些东西偏底层硬件和通信行业, 我对这些一窍不通, 只能说说自己的理解.为什么要研究Android推送技术? 主要还是毕业设计要做一个即时通信app, 我是不喜欢做什么社交app的, 也就象牙塔里的人想得出来, 说实话有转载 2016-05-08 14:13:31 · 1174 阅读 · 0 评论 -
facebook 15个你必须知道的开源项目
Facebook为了争当开源第一大厂,已经把自家很多好东西都拿了出来贡献给开源世界,在开源之路上一骑绝尘,根本停不下来。Facebook开源项目涉及的领域有移动工具多样化、大数据、客户端web库、后台运行时和基础设施,还有通过开放计算项目涉及到的服务器和存储硬件等等。Facebook的GitHub账户有274个代码库,收到了39000次fork、提交了79000个commit,拥有24转载 2016-05-08 14:09:29 · 1141 阅读 · 0 评论 -
viewpager的setOffscreenPageLimit()
/** * Set the number of pages that should be retained to either side of the * current page in the view hierarchy in an idle state. Pages beyond this * limit will be recreated from the adapter when原创 2016-05-01 09:30:24 · 528 阅读 · 0 评论 -
如何不让EditText不自动获取焦点以及EditText只能输入数字
1.如何不让EditText不自动获取焦点 在该控件的父布局中加入 android:focusable="true" android:focusableInTouchMode="true"2.如何让EditText只能输入数字 在EditText的布局中加入 android:numeric="integer"原创 2016-05-25 06:19:46 · 281 阅读 · 0 评论 -
android jni开发如何添加多cpu平台的支持
在jni目录下创建Application.mk 文件 在文件中添加 APP_ABI := x86 armeabi-v7a armeabi mips 如果要添加某个平台直接添加即可原创 2016-04-29 15:53:33 · 581 阅读 · 0 评论 -
jni开发常见的几种错误
写错了load的library java.lang.UnsatisfiedLinkError: Couldn't load hell0: findLibrary returned nullAndroid.mk文件编写错误 /jni/Android.mk:4: *** missing separator. S原创 2016-04-29 15:07:14 · 569 阅读 · 0 评论 -
android jni开发流程
jni开发的流程:第一步:先在java代码中声明一个native的方法 /** * 第一步 * @return */ public native String fromC();第二步:在Eclipse的工程目录下创建一个文件夹 名称jni第三步: 编写c代码#include //引入标准输入输出的头文件#include "jni.原创 2016-04-29 14:33:40 · 474 阅读 · 0 评论