安卓
一往无前-千夜
痴迷于技术,常年更新博客!每日一个问题
展开
-
Android 解析 raw文件或者assert文件夹下面的本地json
解析raw 中json的方法public static KindBean getShopKinds(Context context) { KindBean entity = null; try { InputStreamReader inputReader = new InputStreamReader(context.get...原创 2020-03-06 22:47:41 · 1103 阅读 · 0 评论 -
ListView和RecyclerView 的区别
1.缓存不同 a.ListView 是做的二级缓存,缓存的是View(ViewHolder需要自己去定义,如果不使用ViewHolder的话,每次getView的时候都会调用findViewById(int),这将导致ListView性能展示迟缓. b.RecyclerView 做的是四级缓存,缓存的是Holder.默认缓存的数量是5个.(页面优化,也可以从设置缓存数量这块入手...原创 2020-03-06 22:32:22 · 1101 阅读 · 0 评论 -
ListView和RecyclerView 的区别
1.缓存不同 a.ListView 是做的二级缓存,缓存的是View(ViewHolder需要自己去定义,如果不使用ViewHolder的话,每次getView的时候都会调用findViewById(int),这将导致ListView性能展示迟缓. b.RecyclerView 做的是四级缓存,缓存的是Holder.默认缓存的数量是5个.(页面优化,也可以从设置缓存数量这块入手...原创 2020-03-06 22:31:32 · 734 阅读 · 0 评论 -
带文字描边的自定义TextView
public class StrokeTextView extends AppCompatTextView { private static final int HORIZENTAL = 0; private static final int VERTICAL = 1; private int[] mGradientColor; private int mStr...原创 2020-03-05 23:40:50 · 328 阅读 · 0 评论 -
jumpDrawablesToCurrentState(ViewGroup.java:5165) 栈溢出的解决办法
inflate 少写了一个参数, 第三个参数加一个boolean值就可以了原创 2020-02-10 01:57:52 · 243 阅读 · 0 评论 -
sqlite3官方的常见问题
随便看了看,留着存个档。如果大家看到有什么错误,欢迎大家提出,谢谢1. 怎么创建一个自增字段把字段声明成 interger primary key 就可以了例子 create table t1 ( a integer primary key , b integer); insert into t1 values (NULL, 10);s原创 2017-04-06 22:10:23 · 1635 阅读 · 0 评论 -
正则表达式
这个网址,有很多教程,包含正则表达式http://www.runoob.com/regexp/regexp-metachar.html原创 2017-03-31 10:55:32 · 429 阅读 · 0 评论 -
JAVA线程池原理以及几种线程池类型介绍
在什么情况下使用线程池? 1.单个任务处理的时间比较短 2.将需处理的任务的数量大 使用线程池的好处: 1.减少在创建和销毁线程上所花的时间以及系统资源的开销 2.如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存以及”过度切换”。 线程池工作原理:http://www.ibm.com/developerw原创 2017-03-31 17:48:56 · 412 阅读 · 0 评论 -
Android 开发 对话框Dialog dismiss和hide方法的区别
dismiss和hide方法都可以隐藏对话框,在需要的时候也可以用show方法调用显示。但是,这两者是有区别的。dismiss方法会释放对话框所占的资源,而hide方法不会。activity退出前必须调用dismiss方法关闭对话框。如果对话框上有progressbar,你会发现,调用dismiss方法后,再调用show方法,出来的对话框,上面的progressbar不再会转动,而调用hi原创 2017-03-31 19:43:36 · 513 阅读 · 0 评论 -
导致OOM异常的原因哪些?
一、 Acitivity没有对栈进行管理,如果开启过多,就容易造成内存溢出二、加载大的图片或者同时数量过多的图片的时候三、数据库或者资源没有关闭四、静态成员变量持有类的应用五、非静态内部类持有外部类的引用,使用非静态内部类创建静态变量六、单例引起内存泄露七、Handler造成内存泄露八、线程周期不可控九、无线循环的属性动画引起内存泄露十、listView等没有g原创 2017-03-26 20:02:05 · 3616 阅读 · 0 评论 -
Android中,同步和异步有什么区别?
/** 同步和异步: * 在共享某一资源的时候: * 同步:发送一个请求,等待返回,然后再发送下一个请求 * 异步:发送一个请求,不等待返回,随时可以再发送下一个请求 * 同步可以避免出现死锁, 就是饭只能一口一口吃,只能同时做一个任务,做完之后,才能做其他任务,避免数据混乱 * 异步则是可以提高效率了,就是可以同时做多项工作 /原创 2017-04-03 11:13:42 · 1133 阅读 · 0 评论 -
如何改变Dialog出现的位置_仿男衣库Dailog
改变Dialog出现的位置:Dialog dialog = new Dialog(this);/*随意定义个Dialog*/Window dialogWindow = dialog.getWindow();/*实例化Window*/WindowManager.LayoutParams lp = dialogWindow.getAttributes();/*实例化Window操作者*/原创 2017-04-03 11:47:21 · 426 阅读 · 0 评论 -
实战_okhttp3的网络请求步骤
okHttp网络请求之get请求 五部曲: // 第一步 创建okHttp对象 OkHttpClient mOkHttpClient = new OkHttpClient(); //第二步 建立请求对象 Request request = new Request.Builder ().url(url).get(原创 2017-04-03 15:19:18 · 626 阅读 · 0 评论 -
应用卡顿的常见问题有哪些?
一、 人为在UI线程做轻微耗时操作,,导致UI线程卡顿二、布局layou过于复杂,无法在16ms内进行渲染三、同一动画执行的次数过多,导致CPU或者GPU负载过重四、View的过度绘制,导致某些像素在同一帧时间内绘制多次,从而是CPU或者GPU负载过重a) OnDraw方法内,不要做初始化对象的操作,因为这个方法会被频繁调用b) OnDraw方法不要做耗时操作,五、View原创 2017-03-26 20:34:39 · 770 阅读 · 0 评论 -
如果你的App发生闪退,一般是什么原因造成的?
这个面试题,是一道考验你实际开发经验的面试题. 一般App闪退是由于以下几个原因造成的. 1.缓存垃圾过多 由于安卓系统的特性,如果长时间不清理垃圾文件.会导致越来越卡.也会出现闪退情况. 2. 运行的程序过多,导致内存不足 3.应用版本兼容问题 如果应用版本太低,会导致不兼容,造成闪退。此外,有些新版本在调试中,也会造成应用闪退。原创 2017-04-13 07:48:53 · 61980 阅读 · 0 评论 -
工厂设计模式
工厂设计模式:提供很好的创建对象的方式,属于创建型模式,就是建立一个工厂,生产你要的产品类: 1.工厂方法模式 2.抽象工厂模式详细分类: 工厂方法模式: 缺点:类的创建依赖工厂,如果想要扩展程序,必须对工厂类进行修改,这违背了闭包原则 1.普通工厂模式(一个接口,两个实现类, 一个工厂类,方法返回接口对象,形参传入暗号,方法内判断) 步骤:原创 2017-04-04 21:49:52 · 197 阅读 · 0 评论 -
观察者设计模式
观察者模式: 特点:观察者模式的适用范围是适合一对多情况,有一个主题,n个观察者。当主题发生变化时 相对应的观察者都会收到更新通知,从而更新自己的一些数据或触发一些行为 比如支付宝中当你消费一些钱后,很多个和支付宝余额相关的界面都会得到更新! 观察者模式的思想核心,我觉得用一个词来总结的话,就是群发 现实中的例子: 推送服务.EventBus和Axjava原创 2017-04-04 21:51:49 · 309 阅读 · 0 评论 -
面试题 类加载的先后顺序?
静态代码块--->静态成员变量-->构造代码块-->成员变量-->构造方法如果包含父类的话? 先后顺序为:1.父类静态代码块;2.子类静态代码块;3.父类非静态代码块;4.父类构造函数;5.子类非静态代码块;6.子类构造函数;原创 2017-04-18 13:19:50 · 677 阅读 · 0 评论 -
Activity,Service,和BroadCastReceiver的ANR,无响应时长是多少?
以下是各种主键报出现ANR的时长: 1.Activity的无响应时长是5秒. 2.Service 20S3.BroadCastReceiver 10S原创 2017-04-18 13:28:42 · 2695 阅读 · 0 评论 -
线程同步的方法有哪些(面试题)
线程同步: 由于同一个进程的多个线程共享同一片存储空间。在带来方便的同时,也带来了如访问冲突问题,如何解决,解决方法有几种? 第一种: 采用synchronized同步锁 第二种: 单利设计模式中的静态代码块模式。 第三种: 采用生产者消费者的设计模式。目前我知道的就这三种,有没有其他方式,欢迎拍砖!以上是华为高级原创 2017-04-18 21:38:23 · 2364 阅读 · 0 评论 -
最简单的获取系统时间并格式化
//第一步:创建时间格式化对象 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//第二步:设置格式化时间. tvPdaTime.setText(simpleDateFormat.format(new Date()));(MeterSyncTimeActivit原创 2017-04-30 12:55:53 · 444 阅读 · 0 评论 -
如何在在自己的电脑上安装Linux双系统
前期准备: 先制作一个Linux的启动盘: 制作详情介绍: https://wiki.deepin.org/index.php?title=%E5%8E%9F%E7%94%9F%E5%AE%89%E8%A3%85 1.准备U盘作为启动盘,把H盘中的资料拷贝到U盘中,重启电脑,不停的按住F12进入到启动界面,会出现好几个选项,选择你的U盘启动,进入Deepon引导界面原创 2017-04-19 12:46:22 · 8162 阅读 · 0 评论 -
EventBus使用过程中,遇到的问题点
说到EventBus,想必大家都不陌生,咦~~~~你没听过,好吧,你还要认真学习啊,这篇博客不是去分析EventBus的源码的,也不是讲什么人生哲理,就是教大家如何使用这么一个神器,以后谁要是问你Eventbus会不会用。。。你就可以骄傲的炫耀你的车技了,并将他领上车1.初步理解好了先上一张图体会一下这个的好处,是不是省了很多事,感觉又要复制粘贴一段话,放在下面,每次复制粘贴都反觉转载 2017-04-19 12:53:56 · 6384 阅读 · 0 评论 -
常见的GIT命令
git help #可查看git的常用命令git config --global user.name "Your Name Here" #设置commit的署名git config --global user.email "[email protected]" #设置commit的email原创 2017-04-19 14:17:17 · 195 阅读 · 0 评论 -
Arrays.copyOfRange的用法
//表示复制data数组中的第0个到第47个元素到新数组中byte[] m2 = Arrays.copyOfRange(data, 0, 48); //表示复制数组data里面第48位到最后的数组到一个 新数组S2中byte[] s2 = Arrays.copyOfRange(data, 48, data.length);以上这个方法是在与底层硬件打交道的时候,用到.原创 2017-05-01 16:55:16 · 2693 阅读 · 0 评论 -
Android 快速开发系列 ORMLite 框架最佳实践
ORMLite框架总结出一个较合理的用法。通过上一篇的了解,我们使用ORMLite,需要自己写一个DatabaseHelper去继承OrmLiteSqliteOpenHelper,下面我们首先给出一个我认为比较靠谱的Helper的写法:1、DatabaseHelper[java] view plain copy package转载 2017-05-01 20:36:41 · 200 阅读 · 0 评论 -
Android-->Log系统,Logback的使用体验(slf4j)
一个好的程序, 完全可以从Log中, 解决问题. 一个好的Log系统,是一个程序的关键.本文介绍的是Logback-Android, 这个库,可以将Log写入到File,写入到数据库,写入到Email,写入到网络. 当然,最基本的Logcat窗口完美输出,是最基本的;开源地址: https://github.com/tony19/logback-android slf4转载 2017-05-01 21:02:11 · 537 阅读 · 0 评论 -
Intel HAXM is required to run this AVD 问题的解决
在安装HAXM studio 的 硬件加速器的时候,遇到了这个问题 是由于硬件加速器没有打开,重启电脑,不停的按住F2或者F8,或者Delete,每个电脑不一样,启动界面也会显示快捷键 进入BOIS界面 ,把一个选项改为true,允许加速即可原创 2017-04-19 21:11:17 · 5564 阅读 · 0 评论 -
工作中,git提交不成功,没有进入URL选项,怎样直接进入URL选项修改地址
原创 2017-04-19 21:20:50 · 690 阅读 · 0 评论 -
关于Glide的理解.
glide图片缓存glide源码分享Glide特点.使用简单可配置度高,自适应程度高支持常见图片格式Jpg png gif webp支持多种数据源网络、本地、资源、Assets 等高效缓存策略支持Memory和Disk图片缓存 默认Bitmap格式采用RGB_565内存使用至少减少一半生命周期集成根据Activity/Frag原创 2017-04-16 16:48:14 · 1049 阅读 · 0 评论 -
谈谈你对Glide和Picasso他们的对比的优缺点
1.Picasso和Glide的withi后面的参数不同Picasso.with(这里只能传入上下文) .Glide.with,后面可以传入上下文,activity实例,FragmentActivity实例,Fragement.传入的对象要比前者多.2.加载后图片质量不同 Picasso采用的ARGB-8888,Glide采用的是RGB-565 相对而言原创 2017-04-16 16:50:50 · 5238 阅读 · 1 评论 -
导入或新建项目,界面一直停在 【“building ‘ 项目名’ gradle project info”】解决办法
导入出现这个问题:原因是在下载导入项目对应版本的gradle,如果没有翻墙,可能会一直卡住解决办法:第一步.新建一个项目,复制项目gradle文件夹下wrapper/gradle-wrapper.properties文件distributionUrl=后面的那一串到要导入项目的对应文件中,这样就把导入项目的gradle版本设置成了本地已经下载好的gradle版本了或原创 2017-04-20 21:08:43 · 218 阅读 · 0 评论 -
Android应用开发性能优化完全分析
1 背景其实有点不想写这篇文章的,但是又想写,有些矛盾。不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结、我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只给出啥啥啥不能用,啥啥啥该咋用等,却很少有较为系统的进行真正性能案例分析的,大多数都是嘴上喊喊或者死记住规则而已(当然了,这话我自己听着都有些刺耳,实在不好意思,其实关于性能优化的优质博文网上也转载 2017-05-22 23:20:03 · 363 阅读 · 0 评论 -
Android Studio: sh: 1: glxinfo: not found
sudo apt-get update && sudo apt-get install mesa-utils原创 2017-04-21 17:53:01 · 879 阅读 · 0 评论 -
linux中 #chmod –R 777 * 是什么意思
chmod:在linux系统中它用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。参数-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更) 。777:分别对应文件实际拥有者,文件实际拥有者所在的组,其它用户的权限,数字权限是基于八进制数字系统而创建的,读权限(read,r)的值是4,写权限(write,w)的值是2,执行权限(execute,x)的值是原创 2017-04-21 20:08:16 · 49539 阅读 · 1 评论 -
如何查看Linux下面某一个目录下所有的隐藏文件和文件夹
进入到你要查询的目录,按住ctrl+H,即可以显示隐藏的文件夹。原创 2017-04-21 20:17:20 · 15950 阅读 · 3 评论 -
当让系统自动下载gradle-3.4.1-all.zip不下来,系统一直在加载,的处理方法。
Android studio 翻墙代理原创 2017-04-21 20:25:53 · 1849 阅读 · 0 评论 -
Linux上开发app,android studio配置环境和Gogs
新人入职,如何在windows系统上配置Linux双系统,并在Linux系统上配置Android studio,和git 已经git秘钥 1.系统安装:1.通过u盘安装deepin 最新版2.AndroidStudio安装:(采用在线安装方便快捷,测试结果办公网速不影响)3.Git环境配置apt-get install git4.版本控制账号申请与配置:原创 2017-04-21 21:26:15 · 2249 阅读 · 0 评论 -
windows系统的电脑上如何安装双系统
前期准备: 先制作一个Linux的启动盘: 制作详情介绍: https://wiki.deepin.org/index.php?title=%E5%8E%9F%E7%94%9F%E5%AE%89%E8%A3%85 1.准备U盘作为启动盘,把H盘中的资料拷贝到U盘中,重启电脑,不停的按住F12进入到启动界面,选择第三个U盘启动,进入Deepon引导界面,注册账号和密码原创 2017-04-21 21:56:55 · 1493 阅读 · 0 评论 -
Error:Jack is required to support java 8 language features. Either enable Jack or remove sourceCompa
1、Android 混淆只需在build.gradle(Module:app)中的buildTypes中增加release的编译选项即可,如下: buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('progua原创 2017-05-24 00:27:28 · 431 阅读 · 0 评论