Android基础
文章平均质量分 71
这个专栏记录了我在第一家公司的Android工作时遇到的问题和如何解决的。大家如果有中级工程师的水平,基本全部可以看懂。
暴走邻家
一名还在探索的Android初级工程师
展开
-
android 从文件制定位置读取数据
今天,简单讲讲android 如何从制定的位置读取文件。之前,我写了使用FileInputStream使用read(byte[] b)读取文件的博客,每次调用read()时,FileInputStream会自动向后移位读取的数据长度。那如何我想读取之前已经的读取的数据那应该怎么办呢?在网上搜索了资料,最终解决了问题。从文件指定位置开始读取文件流文件任意位置读取一般有原创 2018-01-11 08:35:05 · 4680 阅读 · 0 评论 -
android BufferedOutputStream的使用
今天,简单讲讲android里的BufferedOutputStream的使用。 BufferedInputStream是带缓冲区的输入流,默认缓冲区大小是8M,能够减少访问磁盘的次数,提高文件读取性能;BufferedOutputStream是带缓冲区的输出流,能够提高文件的写入效率。BufferedInputStream与BufferedOutputStream分别是Filter原创 2018-01-12 08:54:24 · 3059 阅读 · 2 评论 -
android jni 释放资源
今天,简单讲讲android 如何释放在jni新建得 结构体等资源。因为android里是自动释放资源的,所以之前没有注意这一点,后来查找资料才发现jni需要自己释放资源。这里记录一下。JNI编程实现了 native code和 Java程序的交互,因此 JNI代码编程既遵循 native code编程语言的编程规则,同时也遵守 JNI编程的文档规范原创 2018-01-16 09:12:21 · 3370 阅读 · 2 评论 -
android jni jstring 转 char*
今天,简单讲讲Android jni如何将java的Sring转成char*。这个之前一直不理解,所以我都是android传入byte[]转成char*,有一篇博客专门讲了这个。后来发现用String转成char*更加简单。这里记录一下。C++版本如下://将char类型转换成jstring类型 jstring CStr2Jstring( JNIEnv* e原创 2018-01-17 09:13:34 · 5155 阅读 · 1 评论 -
android jni new/delete 和 new[]/delete[]
今天,简单讲讲android里再jni使用new时如何释放内存。这个其实是和C++有关的知识,不过jni编程时还是需要注意的。所以这里记录一下。new 和 delete 到底是什么?如果找工作的同学看一些面试的书,我相信都会遇到这样的题:sizeof 不是函数,然后举出一堆的理由来证明 sizeof 不是函数。在这里,和 sizeof 类似,new 和 delete原创 2018-01-18 08:57:32 · 1639 阅读 · 1 评论 -
android jni malloc和free的使用
今天,简单讲讲android在jni如何使用malloc和free进行内存的分配和释放。这个其实也是C++相关的知识,不过jni需要用到,所以这里记录一下。 一、malloc()和free()的基本概念以及基本用法:1、函数原型及说明:void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败原创 2018-01-19 08:55:42 · 3827 阅读 · 0 评论 -
Android语言国际化values资源文件命名规则
今天,简单讲讲 android 里如何将语言国际化,和各个国家语言的value文件夹的命名规则。昨天,需要将app的字符资源国际化,可是却不知道如何命名,在网上找了资料,终于解决了问题。Android 文本资源国际化 1. 新建一个中文资源文件夹 values-zh strings.xml2.新建一个英文资源文件原创 2018-01-23 08:32:34 · 8289 阅读 · 0 评论 -
android byte的使用
今天,简单讲讲android里byte的使用。这个其实很简单,但是自己觉得一直没有完全弄明白,所以记录一下。byte即字节的意思,是java中的基本类型,用心申明字节型的变量。通常在读取非文本文件时(如图片,声音,可执行文件)需要用字节数组来保存文件的内容,在下载文件时,也是用byte数组作临时的缓冲器接收文件内容。所以说byte在文件操作时是必不可少的。不管是对文原创 2018-01-24 08:55:07 · 15912 阅读 · 0 评论 -
android 解决java.nio.BufferOverflowException 异常
昨天,测试程序时,发现程序了java.nio.BufferOverflowException 异常,后来,在网上搜索了资料,终于解决了问题。这里记录一下。ByteBuffer params = ByteBuffer.allocate(2);// 这里只分配了2个字节,下面的params.put(tmp);却put了3个字节的数据。所以导致 java.nio.BufferOverfl原创 2018-01-25 08:56:43 · 17593 阅读 · 0 评论 -
android 动态修改控件的宽高
今天,简单讲讲android如何动态设置控件的宽高。这个其实也比较简单,但是之前做的时候出现了问题,代码里设置的宽高是dx,需要先转成dp.下面以RelativeLayout作为例子,简单记录一下。动态修改RelativeLayout的宽高,这样的代码,比较简单,就是修改Relativelayout的LayoutParams就可以.代码一般如下:RelativeLayout s原创 2018-01-26 08:48:27 · 6603 阅读 · 0 评论 -
android volatile的使用
今天,简单讲讲android里的volatile的使用。这个其实很简单,而且我基本没有用到,但是还是记录一下。volatile的作用基本和sychronized相似,但是不能替代sychronized。 volatile用处说明 在JDK1.2之前,Java的内存模型实现总是从主存(即共享内存)读取变量,是不需要进行特别的注意的。而随着JVM的成熟和优化,现在在多线程环原创 2018-01-30 09:08:23 · 6770 阅读 · 0 评论 -
android edittext 不可编辑
今天,简单讲讲如何让edittext 不可编辑。这个很简单,不过之前忘记了,还是查找了部分资料,所以这里记录一下。1.android:editable="false"android:editable="false" 就可以了,如果你一直是这么做的,那么你就不用看下去了,在android2.2中直接设置 android:editable="false"是原创 2018-01-31 08:55:35 · 1280 阅读 · 0 评论 -
android JSONObject的使用
今天,简单讲讲android里如何使用JSONObject。昨天,自己使用JSONObject构造json数据时,居然发现构造6个之后,json数据就没有构造进json的括号里,当时是用Debug进行调试,所以百思不得其解。在网上查了资料,也没有明白,后来发现用log打印的json数据是正确的,是debug显示的问题。所以这里还是记录一下JSONObject的使用,避免以后原创 2018-02-01 08:40:17 · 41563 阅读 · 1 评论 -
Android Studio删除无用的资源
今天,简单讲讲android studio如何删除无用的资源。因为对app不停的修改,导致很多类和xml和图片已经没有使用,但是还是在app里,导致app的占用内存过大。所以昨天,将app里无用的类,xml文件,和图片删除了,这里记录一下。一.查看类是否被使用。android studio使用的类会使高亮的,如下:而没有使用的类是暗的:原创 2018-02-02 08:52:45 · 2809 阅读 · 0 评论 -
android 设置PopupWindow透明度
今天,简单讲讲android里如何设置PopupWindow的透明度。之前,我看到其他app的记住用户名的PopupWindow是透明的,可是自己做的记住用户名的PopupWindow却不是透明的,我把PopupWindow的background设置为透明也没有作用,在网查找了资料,网上都是如何设置界面半透明的,根本没有相关的代码。后来,自己终于是做成来了,这里记录一下。其原创 2018-02-06 08:43:16 · 1904 阅读 · 0 评论 -
android ColorDrawable的使用
今天,简单讲讲android里如何使用ColorDrawable。这个其实很简单,只是之前一直没有注意,所以这里记录一下。Drawable资源是Android应用中使用最广泛的资源,它不仅可以使用各种格式的图片资源,也可以使用多种xml文件资源。当然直接使用图片资源没什么好说的,我们主要是要研究下Drawable的子类。Android把可绘制的对象抽象成Drawable,并原创 2018-02-07 08:40:15 · 20602 阅读 · 0 评论 -
Android <activity-alias> 的使用
今天,简单讲讲android如何使用。其实很简单,就是让一个activity跳转到另一个目标activity。但是之前没有注意,所以这里记录一下。【Android】activity-alias的使用activity-alias是android里为了重复使用Activity而设计的。当在Activity的onCreate()方法里,执行ge原创 2018-02-08 08:40:28 · 1354 阅读 · 0 评论 -
android wps表格如何设置边框颜色
今天,简单讲讲如何使用WPS Excel设置表格边框。这个可以说可android的关系不大,但是之前工作时,组长让我写一下工作计划要求用表格写。我完成后,组长说要是美观一些就好,于是自己查询了相关资料,终于设修改出来了。这里记录一下。其实很简单:右键→设置单元格格式→点到边框选项卡→颜色: 选要的颜色→再点线条样式→确定即可 注意,一定要先选原创 2018-02-09 08:57:15 · 1031 阅读 · 0 评论 -
android 实现仿QQ登录可编辑下拉菜单
今天,简单讲讲android里如何实现向QQ一样的登录后记住用户名的下拉框。这个其实也很简单,网上搜索了一下,很多相关的资料,基本都是PopupWindow+ListView的方式,实现起来比较灵活。我也参考了一下,不过把他封装成了自定义的控件,这里记录一下。效果:这里只有使用别人地效果图,因为最近我上传的截图发现在博客上无法显示。其实我对界面做了优原创 2018-02-12 09:01:24 · 2815 阅读 · 0 评论 -
android try catch并不影响性能
今天,简单讲讲android里使用try--catch语句是否会影响性能。我在app的代码里有一些for循环里面有try - catch语句,担心循环里一直执行try - catch语句会影响效率,所以在网上查询了资料,后来发现并不影响性能。这里记录一下。1、JAVA性能调优-将try/catch块移出循环据说把try/catch块放入循环体内,会极大的影响性能原创 2018-02-13 09:00:43 · 5494 阅读 · 0 评论 -
android 使用compareTo比较大小
今天,简单讲讲android里String的compareTo函数的使用。昨天,自己想将字符串进行一个排序,但是排序就必须比较String的大小,这里的String不是数字,而是字符“abd”这样的形式,所以在网上查找了资料,发现compareTo可以解决这个问题。这里记录一下。compareTo()的返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字原创 2018-02-27 08:49:21 · 12720 阅读 · 2 评论 -
Android 实现中文按拼音排序方法
今天,简单讲讲android里如何对中文按照拼音进行排序。之前,我讲了如何对String进行排序,这个是使用String的compareTo函数,但是,如果是中文的话,这样是无法排序的。所以需要将中文转成拼音再进行排序。昨天查找了资料,终于是做成来了。这里记录一下。一.调用pinyin4j-2.5.0.jar的工具类进行排序具体内容如下1、Test测试类:原创 2018-02-28 08:44:49 · 8892 阅读 · 0 评论 -
Android PopupWindow 隐藏软键盘的方法
今天,简单讲讲android里PopupWindow 弹出在底部,被软键盘遮挡的问题。之前,自己写一个PopupWindow 弹出在底部,可是如果软键盘显示时弹出,软键盘会遮挡PopupWindow ,在网上搜索了资料,终于解决了这个问题。这里记录一下。1.解决软键盘的弹出会挡住PopupWindow的问题。//设置弹出窗体需要软键盘commentWind原创 2018-03-01 08:46:59 · 2672 阅读 · 0 评论 -
Android中的popupwindow从底部进入和退出的动画效果
今天,简单讲讲android使用popupwindow时设置popupwindow进入和退出的动画效果。其实这个很简单,之前设置popupwindow从底部进入和退出的效果时,当时记不清了,所以在网上查询了资料,最终才做出来了。这里记录一下。一.编写popupwindow的动画的xml文件1、从底部退出动画pop_exit_anim.xml <transl原创 2018-03-02 08:33:01 · 9119 阅读 · 4 评论 -
android 弹出PopupWindow后背景逐渐变暗
今天,简单讲讲android在弹出PopupWindow后如何使背景逐渐变暗。我之前做的效果是在PopupWindow弹出时立即将背景变暗,这个也很简单。在PopupWindow弹出时,将背景变暗://popWindow消失监听方法WindowManager.LayoutParams lp = getWindow().getAttributes();lp.a原创 2018-03-06 08:50:49 · 1498 阅读 · 0 评论 -
Android 利用属性动画实现PopupWindow背景逐渐变暗
今天,简单讲讲android如何使用属性动画实现PopupWindow弹出后背景逐渐变暗。昨天,记得自己讲了如何使用线程使PopupWindow弹出后背景逐渐变暗,那个其实很简单,其实还有一种代码也可以实现,就是使用属性动画来实现。其实也很简单。ValueAnimator 和 Interpolator今天的主角就是这俩,关于ValueAnimator和Interpo原创 2018-03-07 08:42:50 · 1667 阅读 · 0 评论 -
android 设置PopupWindow的显示大小
今天,简单讲讲android 如何设置弹出的PopupWindow的大小。之前,我做了一个PopupWindow,里面是一个ExpandableListView,设置PopupWindow的大小为:window.setWidth(WindowManager.LayoutParams.MATCH_PARENT);window.setHeight(WindowManager.Lay原创 2018-03-08 08:38:17 · 18019 阅读 · 0 评论 -
android studio设置Tab为四空格缩进
今天,简单讲讲android studio 如何设置代码的缩进为4空格。其实也很简单,有人认为android studio使用Tab缩进也没有问题,这个在android studio上确实是没有问题,但是如果将代码放到其他编辑器上可能就存在问题,因为android stuido的Tab键默认缩进4个空格,但是有的编辑器却默认缩进8个空格,有的可能是2个空格,这样就会出现问题。那么怎么设原创 2018-03-09 08:45:59 · 17945 阅读 · 2 评论 -
Android 的singleLine废弃解决
今天,简单讲讲android里如何解决singleLine已经废弃的问题。之前写代码时,都没有注意singleLine已经废弃,每次想让TextView或Edittext单行显示都是直接使用,但是这样其实不好,因为废弃的函数可能在有的手机上出现问题,所以需要自己去找到替换的函数。一般Google都会给废弃的函数提供替换的函数,阿里巴巴的代码规范也要求程序员自己查找替换的函数原创 2018-03-13 08:35:14 · 19374 阅读 · 3 评论 -
android 代码设置EditText的hint字符
今天,简单讲讲android里如何在代码里设置EditText的hint字符。之前,我一般是直接在xml文件设置EditText 的hint字符,后来需要在代码里修改hint字符,发现自己居然不知道怎么实现,在网上搜索资料后,终于解决了这个问题。这里记录一下。其实也很简单:1.xml文件中设置Ediitext的提示文字 android原创 2018-03-14 08:46:12 · 34857 阅读 · 2 评论 -
android Comparator的使用
今天,简单讲讲android的如何使用Comparator比较对象的大小。记得之前也讲过比较对象的大小,也是使用Comparator,但是但是讲的比较浅,而且有些细节没有弄好。最近再次需要使用Comparator比较对象大小,所以自己在网上查找了资料,解决了问题。这里记录一下。Java中实现对象的比较:Comparable接口和Comparator接口在原创 2018-03-15 08:54:15 · 4957 阅读 · 0 评论 -
Android RelativeLayout和LinearLayout性能分析
今天,简单讲讲android里RelativeLayout和LinearLayout的性能比较。之前,我看到代码优化时需要将界面扁平化,所以查询了如何优化解码,了解一下RelativeLayout和LinearLayout的性能,已经什么情况下使用RelativeLayout和LinearLayout。这里记录一下。0. 前言我们都知道,新建一个Android项目SDK原创 2018-03-16 08:51:26 · 772 阅读 · 0 评论 -
android 解决getColor()方法过时
今天,简单讲讲android里如何解决getColor()方法过时的问题。之前,我写博客讲了程序员需要解决过时的方法的问题,Google会提供过时函数的替代函数,程序员有责任找到替代函数,并且解决过时的函数。所以,我检测代码时发现getColor()方法已经过时,自己在网上查找了资料,找到了替代函数,解决了问题。getColor()过时过时的源码: /** *原创 2018-03-20 08:35:46 · 16978 阅读 · 1 评论 -
android 使用Photoshop获取图片某一点的颜色
今天,简单讲讲android里如何使用Photoshop获取图片某点的像素。之前,做界面时需要模仿一款app的界面,所以需要获取界面的颜色值在app里使用。其实使用颜色截取器也可以,也很简单。但是但是想使用Photoshop获取截图的某一点的颜色,所以在网上查找了资料,最终是解决了这个问题。这里记录一下。一。使用前景色获取图片颜色在PHOTOSHOP里面,找出图像上某一原创 2018-03-21 08:36:32 · 1205 阅读 · 1 评论 -
android addView的使用
今天,简单讲讲android里如何使用addView动态的添加控件到界面上。这个其实很简单,之前我使用时发生了一些问题,所以在网上查找了资料,最终解决了问题。这里记录一下。一、说明添加视图文件的时候有两种方式:1、通过在xml文件定义layout;2、java代码编写这里只介绍代码添加视图文件。 在项目开发中,我们经常需要进行动态添加原创 2018-03-22 08:26:58 · 26798 阅读 · 0 评论 -
android 解决setbackgrounddrawable过时
今天,简单讲讲android如何解决setbackgrounddrawable过时的问题。之前,自己也讲了一些函数的过时的替代函数,昨天,自己在代码里又发现了setbackgrounddrawable过时,于是自己在网上查找了资料,最终解决了问题。这里记录一下。setBackgroundDrawable()在API 16(4.1)已经过时了原创 2018-03-23 08:43:29 · 28595 阅读 · 0 评论 -
android Drawable.mutate()的使用
今天,简单讲讲android里如何使用Drawable的mutate函数。最近,我看到一个自定义控件里用到了Drawable的mutate(),但是自己不知道是什么意思,于是在网上查找了资料,最终解决了问题。这里记录一下。摘录android的官方注释/** * Make this drawable mutable. This operation canno原创 2018-03-27 08:32:03 · 9369 阅读 · 4 评论 -
android 帧动画的使用
今天,简单讲讲android里如何使用帧动画。其实也很简单,不过之前自己需要写一个帧动画时,忘记了具体怎么写,在网上查找资料后,解决了这个问题。所以这里记录一下。一、概述 帧动画,顾名思义就是这个动画的效果是由一帧帧的图片组合出来的。通过制定图片展示的顺序,达到动画的展示效果。 在Android开发中,系统给我们提供了”animation-list” 节点用于我原创 2018-03-28 08:54:19 · 591 阅读 · 0 评论 -
android handler 的removeMessages的使用
今天,简单讲讲android里如何使用handler的removeMessages函数。这个很简单,之前自己也一致在使用,所以这里记录一下。具体的如下:removeMessages会将handler对应message queue里的消息清空,如果带了int参数则是对应的消息清空。队列里面没有消息则handler会不工作,但不表示handler会停止。当队列中有新的消息进原创 2018-03-29 08:45:55 · 18004 阅读 · 0 评论 -
android 隐藏手机底部虚拟按键
今天,简单讲讲android如何隐藏手机下面的虚拟按键。其实,自己在做界面适配时,老是发现了华为手机存在适配的问题,主要就是华为手机有一个底部的虚拟按键占用了界面的部分空间,所以在网上搜索了如何隐藏华为手机下方的虚拟按键,最终找到的代码。这里记录一下。 /** * 隐藏虚拟按键,并且全屏 */ protected void hideBottomUI原创 2018-03-30 08:38:22 · 14485 阅读 · 0 评论