自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

crazycat

android笔记

  • 博客(76)
  • 问答 (1)
  • 收藏
  • 关注

原创 Advanced Android TextView

https://github.com/chiuki/advanced-textview 今日通过一个开源库来分析textview的一些其他玩法。。 getCompoundDrawables方法可以获取这4个位置的图片。然后就可以在文字周围加drawable动画和动画集合等等(animated-rotate和animation-list)。假如要用animated-vector还要另外新建...

2018-04-23 17:28:39 418

原创 DataBinding填坑记

前提在module的build gradle dataBinding { enabled true }1.与java8函数式一起无法编译遇到的坑 在build gradle里面添加jack来开启j8函数式时,databinding可能遇到无法添加点击事件甚至无法编译,看报错信息,有jack的错误。这时我们要去掉下面jackoption。 compil...

2018-04-11 10:54:13 807

原创 service的理解

1.service的startSerive(前提serive属于四大组件必须在清单文件注册)启动了onCreate(),onStartCommand(),但无论start多少次,onCreate只会初始化一次,后面startSerive只会重复调用onStartCommand。 bindService(intent, serviceConnection, Service.BIND_AUTO_CRE...

2018-03-09 10:29:27 541

原创 第12章 bitmap的加载和cache

bitmap加载常用的缓存策略是LruCache和DiskLruCache。一个常备用于内存缓存一个用于存储缓存。LRU是最近最少使用算法。。缓存快满时淘汰最少使用的缓存目标。使用BitmapFactory加载bitmap有decodefile(从文件系统加载),decodeResource(资源),decodeStream(输入流),decodeByteArray(字节数组)使用bitmapF

2017-11-14 16:26:25 424

原创 第11章 android的线程和线程池

android常见线程有thread,AsyncTask和Intentservice以及hangdlerthread。AsyncTask抽象泛型类四个核心方法1)onPreExecute()前期准备工作2)doInBackGround(Prama….params)异步任务,通过publishprogress来更新进度,它会调用onPregerssUdate3)onProgressUpdate()主

2017-10-29 20:44:02 520

原创 第9章 四大组件的工作流程

activity启动由intent启动,分显示和隐式,隐式可以指向一个或者多个目标acitivity。service组件 有两种状态启动和绑定。service取于启动状态不需要要和外界直接交互。绑定状态时可以方便和外界交互,stopservice和unbindsevice可以停serive。BroadcastReceiver分静态动态注册。静态在清单文件组件不像动态注册需要context.reg

2017-10-15 21:23:45 443

转载 android面试基础收集

算法8大排序 静态代理和动态代理 java集合 Java集合大致可以分为Set、List、Queue和Map四种体系。 其中Set代表无序、不可重复的集合;List代表有序、重复的集合;而Map则代表具有映射关系的集合。Java 5 又增加了Queue体系集合,代表一种队列集合实现。Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)“丢进”该容器中。从Java 5

2017-10-13 09:36:19 310

原创 第10章 android的消息机制

handler需要MessageQueue和Looper支撑。MessageQueue翻译是队列实质采用单链表存储消息列表.Looper以无限循环的方式去查询新消息,ThreadLocal实质不是线程而是在每个线程中存储数据,并且可以轻松获取到每个线程的Lopper.主线程ActivityThread创建handler时就会创建looper.looper和ActivityThread,ams都有用

2017-10-08 17:44:30 310

原创 第5章 理解remoteview

RemoteView主要使用场景是通知栏和桌面小部件,可以跨进程更新界面自定义通知用到RemoteView,更新图片文字需要用到setTextViewText和setImageVIewResources,如果需要增加点击事件就需要使用PendingIntent的setOnClickPendingIntent。AppwidgetProvider在桌面小部件应用中是一个广播的存在。<?xml ve

2017-06-18 19:58:05 533

原创 第2章 IPC机制

android一个应用可以有多个进程,多进程就是给四大组件的清单文件只定android:process属性。以”:”开头属于当前应用私有进程,指定包名的进程只能通过shareuid并且两个应用相同才能共享数据。每一个进程都分配了对立的虚拟机,存在着不同的内存地址。使用多进程可能造成 1)静态成员和单例模式完全失效 2)线程同步机制完全失效 因为无法保证锁对象线程同步 3)shareprefere

2017-05-22 22:54:30 426

原创 android svn收集总结

在android studio使用svn配置可以参考知乎这个图文答案https://www.zhihu.com/question/32298079 windows的配置可以参考腾讯这篇文章常见的错误是:配置不成功一般是无法找到svn.exe 提示Error “can’t use subversion command line client : svn” when opening android

2017-04-24 19:47:53 649

原创 第4章 view的工作原理

viewRoot对应于ViewRootImpl类,连接windowmanager和decorview,view的三大流程 measure,layout,draw通过他来实现。measure决定了view的宽高,测量完成可以通过getMeasurwith和getMeasureheight获取宽高。layout决定了view四个顶点坐标和实际宽高,完成后可以通过getright/getleft/gett

2017-04-16 22:30:35 361

原创 第3章 view的事件体系

view是android所有控件的基类,view位置有四个属性:top,left,bottom(相对于父容器坐标)。从Android 3.0开始,view增加了x、y、translationX、translationY四个参数,这几个参数也是相对于父容器的坐标。x和y是左上角的坐标,而translationX和translationY是view左上角相对于父容器的偏移量,默认值都是0。x = le

2017-04-04 22:59:37 617

原创 面试ap公司试题

纯记忆没有拍照。。部分连接要可能要翻墙递归实现十进制转二进制import java.util.Scanner;public class DecToBin {public static void main(String[] args) { int input; Scanner scan = new Scanner(System.in); System.out.print

2017-03-08 17:59:57 1266

原创 第13章.综合技术

通过carshhandler来获取应用的carsh信息 android提供了Thread类中的一个方法setDefaultUncaughtExceptionHandler。平时可以将carsh信息存储到sd卡然后在合适时机上传到服务器。 -自定义一个carshhandler实现UncaughtExceptionHandler。代码点击此处在Application的onCreate方法中设置一下即

2017-02-26 15:30:17 460

原创 第7章.android动画

android动画分为View动画 帧动画 属性动画View动画View动画包括平移,透明,缩放,旋转。用xml文件在res/anim创建 set标签做动画集合。interpolator插值器来改变动画是速度;shareInterpolator是否共享插值器。用duration改变动画时间,fillafter表示动画结束是否停留。最后通过AnimationUtils调用anim文件。可

2017-02-06 17:16:01 514

原创 第15章.android性能优化方法

假如可以用Linearlayout,就用Linearlayout,因为Relativelayout比较复杂。采用include,merge,viewstub标签重用布局。include 的id以include指定id为准,假如根元素也有idinclude 假如指定android:layout_*属性,那么必须重写include的宽高。merge去掉多余的嵌套viewstub不参与绘制过程,

2017-02-03 17:26:46 403

转载 git日常操作

转载廖雪峰 1. git status命令可以让我们时刻掌握仓库当前的状态 2. git diff 顾名思义就是查看difference,显示的格式正是Unix通用的diff格式。查看修改内容 3. git add 添加到仓库 (把文件修改添加到暂存区) 4. git commit -m “git tracks changes” 提交的修改到仓库 把暂存区的所有内容提交到当前分支

2017-02-01 19:39:28 395

原创 第1章. activity生命周期

当用户打开新的activity或者切换到桌面的时候,回调是onpause–》onstop。特殊情况,如果新activity采用了透明主题,那么当前activity不会回调onstop。用户回退back。回调是onPause–》onStop–》onDestroy从整个生命周期来说,onCreate和onDestroy是对应的,分别标记创建和销毁。并且只可能调用一次。onstart和onstop是从

2017-01-25 01:09:56 458

原创 如何判断app在前台还是后台

app位于前台后台

2017-01-05 15:25:55 1474

转载 Android内存泄漏分析心得

转载QQ空间团队 http://mp.weixin.qq.com/s?__biz=MzI1MTA1MzM2Nw==&mid=2649796884&idx=1&sn=92b4e344060362128e4a86d6132c3736&chksm=f1fcc54cc68b4c5add08371265320163381ea81333daea5664b94e9a12246a34cfaa31e6f0b3&mp

2016-11-17 11:47:55 1106

原创 Listview实现简单的单选功能

1,需求就是点击列表的其中任意一项,显示图片,重复点击图片依然显示,其他不选中不显示图片2.一开始看网上都是用radiobutton来实现单选功能,发现滚动的时候被回收了,并不能记住图片的显示3.最后参考了网上的做法,自定义一个getview里面的item项首先,listview的xml文件 <ListView android:id="@+id/listview"

2016-11-07 00:10:36 1407

原创 手机不打印日志和Logger日志库的使用

魅族手机默认是不开启打印高级日志的。所以有时候你使用一些自定义的log库看不到输出日志。打开方式:设置——辅助功能——开发者选项(假如你看不到开发者选项再想办法)——高级日志输出–点击允许全部华为手机也是不允许打印日志的这个很奇葩。在这里可以看到原答案http://blog.csdn.net/msn465780/article/details/46117945 拨号键盘输入##2846579#

2016-10-31 17:33:33 4865

原创 Android防止键盘弹出后顶起布局和弹窗消失后输入法没有收回

有人这样做: 在界面中点击文本输入框,键盘弹出后有时会将界面中的布局顶起。为避免该情况,可在onCreate()方法中加入以下代码: getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 其实在清单文件对应的actvityandroid:windowSoftInputMode=”state

2016-10-28 16:00:37 2964

转载 设计模式之Prototype(原型)

转载 http://www.jdon.com 定义: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。如何使用? 因为Java中的提供clone()方法来实现对象的克隆

2016-10-28 09:53:15 362

原创 华为手机和谷歌原生系统虚拟按键遮挡布局问题

很多情况下,例如华为手机和谷歌原生系统只有虚拟按键,这时候假如你们做了特殊处理我们可以将布局绘制到navigationBar里面。当然为了避免这种情况,我们应该讲所有的绘图到在navigationBar上面。<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:

2016-10-18 11:03:58 4901

原创 viewpager删除item(数据源发生改变)没有即时更新

private class MyPagerAdapter extends PagerAdapter { private ArrayList<HR_SCDevice> list; public MyPagerAdapter(ArrayList<HR_SCDevice> list) { this.list = list; }

2016-10-12 19:41:55 3764

原创 Ensure that you have installed a JDK (not just a JRE) and configured your JAVA_HOME system variable

导进新项目的时候经常run不起来。cmd的看它的java version居然是1.8,因为windows经常提示安装,具体什么原理我也不清楚了,我用的java home一直是1.7。更新了jdk 1.8后,就没问题了。相当于重新升级了jdk。哎。祝君好运。。。。。

2016-08-15 20:31:57 2289

原创 导入友盟遇到找不到v4包类的办法

其实谷歌除了v7就是为了向下兼容了v4,做第三方登陆导入QQjar包同时v4也导进来了。然后说我找不到v4下的nestsrc类等等。好明显是冲突了,因为之前项目没问题。这时候就是在libs删掉v4的jar包,右键delete发现delete不了,因为我们的gradel还有依赖,我们ctrl+f找到所有v4的依赖注释掉,再重新clean,再rebuild就没问题了。顺利run。

2016-08-15 10:33:19 1019

原创 说说string和int,byte

private int[] findSelectedId(byte[] matchNum) { byte[] mlibDevModel = new byte[libDevModelLen]; for (int i = 0; i < brandList.size(); i++) { for (int j = 0; j < brandList.ge

2016-08-08 17:44:20 518

转载 service整理笔记

转载http://blog.csdn.net/guolin_blog/article/details/11952435Service的基本用法项目中的每一个Service都必须在AndroidManifest.xml中注册才行由于onCreate()方法只会在Service第一次被创建的时候调用,如果当前Service已经被创建过了,不管怎样调用startService()方法,onCreate()

2016-08-04 13:12:15 395

原创 'Android Dependencies' 报错,有红叉

今天被坑死了,eclipse的Android Dependencies报错红叉,说我引用的第三方库有问题,说我的bin missing掉了这个时候我经过中文百度根本没人解决坑成一逼,我想到了因为用英文搜索 Android Dependencies is wrong,高票答案立刻解决问题。中文意思就是重新build一下,先close自己的project(因为你引用有问题的库所以先关掉),然后直接重新b

2016-08-02 19:50:19 4219 1

原创 > SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDRO

如题:> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable. 我远程拉gitlab的项目的时候遇到 在这里可以搞到http://stackoverflow.com/questions/19794

2016-07-28 20:19:10 9554

原创 eclipse一闪而过打不开

总之懵逼了。eclipse突然有一天打不开了。去Dos命令行查下Java,javac,Java -version都没问题。按照网上的删的删,改快捷方式的改,还是不行,就差重装系统了。假如系统重装就懵逼了,最后直接删掉现有的eclipse,重装eclipse。这才是终结绝招啊。

2016-07-28 10:52:00 1050

原创 第6章.Drawable系列

Drawbale使用简单,比自定义成本低,占用空间小可以通过getIntriWindth/height来获取他们的内部宽高,作为颜色的drawable没有宽高。1. BitmapDrawable表示的就是一张图片,可用过xml描述<?xml version="1.0" encoding="utf-8"?><bitmap xmlns:android="http://schemas.android.c

2016-07-26 17:56:40 591

原创 Android sdk content loader at 0%… and nothing works

老项目接受还是eclipse。 今天一打开电脑懵逼了一直Android sdk content loader at 0%,没法打开项目 后面查了staroverflow,然后有个重启adb的。然后我直接adb命令,发现提示adb不是内部命令。然后发现我的adb所在platform里面的路径居然是英文的,我靠。我立刻将他改为英文,然后在eclipse的windows的preferences的and

2016-07-19 10:41:44 984

转载 Android子线程中更新UI的3种方法

转载http://gqdy365.iteye.com/blog/2112471 在Android项目中经常有碰到这样的问题,在子线程中完成耗时操作之后要更新UI,下面就自己经历的一些项目总结一下更新的方法: 在看方法之前看一下Android中消息机制: 引用Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。 H

2016-07-11 10:37:44 735

原创 TCP,UDP和socket,Http之间的联系与区别

因为最近做一个智能家居项目,首先要通信用socket,为了及时先用UDP判断是内网外网建立链接,再用TCP实时通信。http://www.360doc.com/content/14/0325/09/1317564_363500997.shtml 首先了解定义TCP的优点:可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制

2016-07-08 13:17:42 3309

原创 Java中的arraycopy

拷贝数组, arraycopy(Object src, int srcPos, Object dest, int destPos, int length)从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。从 src 引用的源数组到 dest 引用的目标数组,数组组件的一个子序列被复制下来。被复制的组件的编号等于 length 参数。源数组中位置在 srcP

2016-07-06 16:52:21 4764

原创 广播接受者的一点理解

1,动态注册是依附activity的,当解绑的时候就销毁了,这个页面自然不能接受广播了。 2,静态注册就无敌了,只要注册了,就无法销毁了,伴随整个app的总结 但是他们都不能进行耗时操作,超过10秒就ANR. 我们广播接受者的onreceive处理不同的action是根据我们的过滤器决定的,不同过滤器处理不同操作的话,就要判断他的action来自哪里。找出sendbroadcast方法,我们就

2016-07-05 21:13:21 398

空空如也

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

TA关注的人

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