- 博客(55)
- 收藏
- 关注
原创 Android获取文件方法对应的路径
Android开发经常或涉及到file操作,而file路径常常是一件很头痛的事。为此,特整理如下,希望能帮到大家。
2017-07-20 09:28:34
622
原创 public、protected、friendly、private
java有四种权限修饰符,主要用于划分权限等级,隔离变化。其使用范围列表如下: 1. public:适用于整个应用 2. protected:使用与包内或子类 3. friendly:实际应用时不加权限符号,适用于包内 4. private:只适用于类内 修饰符 application package subclass selfclass public √ √
2017-06-06 10:02:47
501
原创 ==和equals()的关系
在搞清楚==和equals()关系之前,要先厘清基本类型、String、以及实例对象在内存中的分配机制。 不同对象在内存1.基本类型(byte、short、int、long、float、double、char、boolean):以int为例 1. int a = 12:会先查询栈中是否存在12,如果没有,会先创建,然后将a指向它;如果有的话,会直接指向它;如果修改a的值的话,如a = 13;道理
2017-06-03 18:12:09
774
原创 java基本类型作为类成员和方法成员时默认值问题
刚学Android时,就被告知八中基本类型(short、int、long、float、double、char、byte、boolean)都是有默认值的。但是偶尔的一次代码编写过程发现,当在方法中定义变量时,必须要进行初始化,否则会提示错误: @Override protected void onCreate(Bundle savedInstanceState) { supe
2017-06-03 16:25:56
1256
原创 Java运算符总结
抽时间整理了一下Java运算符,列表如下:运算符的优先级如下: 1. 自动递增和递减(++ ,–) 2. 算数运算符(+,-,*,/ ,%) 、 移位运算符(<< ,>>) 3. 关系运算符(> ,>=,<,<=,==,!=) 4. 逻辑运算符(&&,||,!)、按位运算符(&,|,^,~) 5. 三元条件运算符(A>B ? X:Y) 6. 赋值运算符(=)、复合赋值运算符(如*=
2017-06-02 15:22:16
478
原创 Android Studio Javadoc配置
1.搜索点击File—Settings—Plugins,搜索“Javadoc”,结果如下:点击“Search in repositories”,搜索结果如下:2.安装点击右上角“Install”,下载并安装3.重启安装完成后,结果如下:点击右上角“Restart Android Studio”,重启Android Studio,使得Javadoc生效。4.生成注释将鼠标放置方法上,点击Shift+A
2017-06-02 11:55:01
9047
5
原创 EditText密码可见与隐藏,EditText光标位置设置在内容后
经常在做注册界面的时候,需要设置密码可以切换显示状态。怎么做呢?很简单,只要修改EditText的输入类型就好了:if (isChecked){ edtPassword.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);// 输入为密码且可见}else { edtPassword.setInputType(In
2017-05-25 09:41:39
4756
原创 Button 英文大写问题
今天在做多语言的时候发现,切换到英文的时候,Button的文字会变成全大写的英文。查阅一下,发现有个特殊的属性:android:textAllCaps="true"该属性表示“是否文本全部大写”,对于Button来说,默认为true。所以切换到英文的时候默认全部大写。解决方案很简单,在Button里设置为textAllcaps为false就可以了:android:textAllCaps="false
2017-05-25 09:12:48
2420
转载 Android异步消息处理机制完全解析,带你从源码的角度彻底理解
http://blog.youkuaiyun.com/guolin_blog/article/details/9991569
2017-05-20 11:56:34
335
原创 Java单例模式
单例模式可以保证应用中只有一个实例,具体的实现方式如下:1.懒汉式:第一次调用的时候才初始化public class Singleton { private static Singleton singleton; private Singleton() { } public static Singleton getInstance() { if (singl
2017-05-20 11:18:15
430
原创 Android线程详解
线程的状态线程有六种状态: 1. 创建:调用了new Thread(),尚未start()之前 2. 就绪:调用了start(),在内存中准备就绪,等待获取cpu 3. 运行:获取了cpu 4. 阻塞:暂时释放了cpu资源,可能释放了同步锁(sleep()释放了cpu,但是持有同步锁;wait()释放了cpu和同步锁) 5. 终止:run()代码执行完毕或程序异常退出(如手动将进程杀死)状
2017-05-20 10:39:59
414
原创 Android-程序、进程和线程
什么是程序:与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。说白了就是具有特定功能的计算机文件,一般位于硬盘中。什么是进程运行中的程序,位于内存的一块存储区域(从进程存在的形式来说,进程就是一块包含了资源的内存)什么是线程进程的执行实体(进程本身是一块内存,是静态的;线程是进程的功能实体),也是CPU独立运行和调度的单位(CPU分配资源是以线程而非进程为单位的)三者的关系
2017-05-19 10:53:46
366
原创 Android—权限类型和自定义
权限类型normal:最低级别权限。应用如若申请该权限,安装时系统会自动赋予,不用询问用户同意与否dangerous:高风险权限,因为包含潜在风险,所以系统不会自动授权。一般会弹出权限请求框,用户同意后方可授权signature:权限仅授予和发布该权限的应用的签名一致的应用。系统会自动授予而不用经过用户同意。如:请求系统的signature权限,则需要和系统具有相同的签名signatureOrsys
2017-05-18 14:36:00
2340
原创 Android-内存泄漏与内存溢出
内存泄漏(memory leak):应用持有的资源无法得到释放,导致可分配的内存越来越少。如Activity销毁时存在强引用导致无法释放内存资源。 内存溢出(out of memory):内存不足,无法给应用继续分配资源。 一般来说,内存泄漏一定会导致内存溢出。
2017-05-18 10:56:09
322
原创 Android-四种进程类型
程序与进程程序:存储在磁盘上的可运行的代码和数据的集合,是个静态的概念 进程:程序的执行过程,是操作系统进行资源分配的基本单位,是个动态概念 程序由一个或多个相互协作的进程组合而成。进程的创建当程序启动运行时,系统就会为之创建相应的进程。在进程当中,调用系统资源,执行程序的逻辑。进程的销毁进程什么时候会销毁呢?进程的销毁场景有两种,1.程序不需要继续执行代码,运行结束;2.系统为回收内存,强制销
2017-05-18 10:36:58
7758
原创 深入学习BroadcastReceiver
介绍Android 应用可以发送或接收源于系统或其他App的广播,类似于发布—订阅模式。一般来说,广播主要用于应用内或跨应用的的通信。注册方式Context.register(动态注册)1.创建BroadcastReceiver实例,代码如下: private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
2017-05-17 17:10:56
573
原创 深入理解onSaveInstanceState和onRestoreInstanceState
作用onSaveInstanceState用于保存Activity中每个实例的状态;onRestoreInstanceState用于恢复Activity异常销毁之前的状态,也就是onSaveInstanceState保存的状态。使用时机一般只有当Activity非自然退出时,才会调用onSaveInstanceState。如: 1. 点击Home键,退出应用 2. 横竖屏切换 3. 点击电源按
2017-05-17 13:42:21
820
原创 Android初级——Activity状态、周期、启动模式
什么是Activity通过界面与用户交互的组件。Activity的四种状态1.Active/Running新启动一个Activity,此时Activity居于栈顶,可与用户交互。2.PausedActivity失去焦点,可见但不可控;一般是被非全屏或全屏透明的Activity覆盖。此时仍与窗口连接器连接,保持状态、成员信息。但是内存很低的时候,会被销毁掉。3.StoppedActivity失去焦点,
2017-05-16 15:56:24
366
原创 Android 状态栏背景设置
问题如图所示,标题栏和背景颜色不统一,整体视感不协调。背景 1.Android 4.4之前状态栏默认黑色,不能改变 2.Android 4.4可以设置状态栏是否透明 3.Android 5.0+可以主动设置状态栏背景预期效果状态栏和toolbar或背景色一致,如:初步方案1.Android 4.4以下,不做处理 2.Android 4.4+ ,设置状态栏透明实现style创建values、v
2017-05-04 13:57:39
8127
原创 dp、sp、px、dpi、ppi、pt详解
概念屏幕尺寸(Screen Size):手机屏幕对角线长度,单位为英寸(inch),1 inch = 2.54 cm; px(Pixel):像素,构成图像的基本单位 pt(Point):点,印刷行业常用单位,1 pt = 1/72 inch ppi(Pixel Per Inch):图形分辨率,每英寸像素数,分辨率单位 dpi(Dot Per Inch):打印分辨率,每英寸点数 dp(Den
2017-04-26 16:58:23
1480
原创 java文件怎么转换成class文件;class怎么转换成jar文件;jar文件怎么转换成二进制dex
命令 1.java文件转换成class文件:javac -source 1.6 -target 1.6 X.java(X.java是要转换的文件,默认生成同名class文件) 如:D:\java\Studio\sdk\build-tools\22.0.1>javac -source 1.6 -target 1.6 com/chaos/hack/AntiLazyLoad.java2.class文
2017-04-08 13:48:41
11248
原创 Android 存储区划分
概述虽说做Android两年了,可是对于一些基础的知识还是不甚了解。比如说Android的内存(Memory)、手机存储、内部存储(InternalStorage)和外部存储(ExternalStorage)。今天我们就来说一说存储的事!问题开始之前,先说说我们常遇到的存储问题!1. 什么是内存、手机存储、内部存储,外部存储? 2. 内部存储和外部存储的区别是什么? 3. 应用数据在内部和外部存
2017-02-25 13:08:27
2524
原创 java输入与输出流
概述从14年10月份开始工作,到今天做Android已经两年半了。可是到现在也没搞清楚Java的I/O机制,痛定思痛,觉得好好整理一下。古人云“格物致知”,今天就好好格一格I/O机制吧!常见问题什么是流“流”是一连串流动的字符,同时也说明了数据传输的一种状态:“均匀与连续”。java使用“流”进行数据传输。而传输的双方一般是“你的程序”和“设备(手机)”。输入和输出流根据流的方向,可以分为输入流和输
2017-02-24 15:18:58
651
转载 git的使用
这篇文章记录我学习Git的过程中遇到的问题及对于某些问题的看法,如有错误,还望不吝赐教!ps:这篇文章介绍本地库,下篇将介绍与远程库的交互。Git是什么 & 为什么要有Git? 既然您能看到这篇文章,相信你对Git也有了一点点的了解,或者您本来就是大神,来观望下博主而已。 言归正传,那么到底什么是Git呢! Gi
2017-01-16 15:14:16
245
翻译 Pro Git-介绍
你即将花费生命中的几个小时阅读Git。让我们花几分钟解释我们为你准备了什么。下面是本书的10个章节和三个附录的快速总结。在第1章,我们将学习版本控制系统(VCS)和Git基础——非技术性知识,git是什么,为什么在VCS遍布的情况下出现,什么使得它与众不同以及为什么那么多人使用它。然后,我们将探索如何第一次下载和安装git,如果系统中还没有git的话。在第2章,我们将学习基础的git用法——如何在你
2016-12-28 14:09:37
993
翻译 软件工程-第一章 介绍
目标本章目的主要是介绍软件工程和提供理解本书剩余部分的框架。阅读本章时将会:理解软件工程是什么以及为什么很重要理解不同类型软件系统的开发可能需要不同的软件工程技术理解一些对于软件工程师很重要的伦理和专业问题已被介绍的三种不同类型的系统,将作为案例在全书使用内容 1. 专业软件开发 2. 软件工程伦理 3. 案例学习没有软件,现实世界无法运转。国家基础设施和公共事
2016-12-27 11:16:25
2477
翻译 软件工程-第一部分 软件工程介绍
本书该部分的目的是提供软件工程的基本介绍。介绍了重要的概念如软件过程和敏捷方法,描述了基本的软件开发活动,从初始的软件说明直到系统进化。本部分的章节设计为支持软件工程一学期的课程。第1章是一般性的介绍,主要介绍了专业的软件工程和定义了一些软件工程概念。也写了一段关于软件工程的道德问题的简短的讨论。我认为软件工程师思考他们工作蕴含的更广泛的含义是非常重要的。本章也介绍了我在书中使用的三个案例,也就是精
2016-12-27 10:09:00
738
翻译 Gradle for Android-高级Build和自定义
既然你已了解Gradle是如何工作、如何创建task和plugin、如何建立持续集成,你可以称自己为专家了。本章包含了一些我们之前没有提到过的提示和技巧,可以使得使用Gradle构建、开发和部署Android项目更容易。本章,我们将会学习以下主题:减少APK文件大小加速构建忽略Lint从Gradle中使用Ant高级App部署减少APK文件大小APK文件的大小最近几年显著的增长了。对此,一
2016-12-26 09:18:28
3061
翻译 Gradle for Android-建立持续集成
持续集成(Continuous integration:CI)是一个要求团队中的开发者定时地集成它们的工作的开发实践,经常每天多次集成。每次push到主仓库都要被一个自动化build验证。该实践尽可能的帮助检测问题,因此加速了开发和提升了代码质量。杰出的Martin Flowler写了一篇关于这个主题的文章,解释了这个概念和描述了最佳实践: http://martinfowler.com/arti
2016-12-23 11:54:56
950
翻译 Gradle for Android-创建task和plugin
迄今为止,我们已经为gradle build手动编辑了属性和学习了如何运行task。本章节中,我们将会对这些属性进行深度理解,并开始创建我们自己的task。一旦我们知道如何书写自己的task,便可更进一步,了解如何制作我们自己的可以在几个项目中重用的plugin。在了解如何创建自定义task前,需要学习一些重要的Groovy概念。因为对Goovy如何工作有个基本的理解使得自定义task和plugin
2016-12-20 10:17:00
4358
翻译 Gradle for Android-运行测试
为了确保任意app或library的质量,自动化测试是很重要的。长期以来,Android开发工具都不支持自动化测试,但是最近,Google投入巨大精力使得开发者更易启动测试。一些老旧的框架已经被更新,而且一些新的框架也已被添加,确保我们彻底地测试app和library。我们不仅可从AS中运行它们,也可以使用gradle,直接从命令行接口中运行。本章节中,我们将会探索不同的测试Android app和
2016-12-19 10:32:10
3113
翻译 Gradle for Android-管理多模块buld
AS不仅允许为app或library创建module,也会创建Android Wear、Android TV、Google App Engine等。所有的这些模块都可应用到一个单独项目中。例如,你可能想要创建一个集成了Android Wear而且后台使用Google Cloud Endpoints的app。这种情况下,要创建一个有三个module的项目:一个用于app,一个用于后台,还有一个用于An
2016-12-15 13:24:17
1381
翻译 Gradle for Android-创建build变体
开发app时,通常都有好几个版本。最常见的就是有一个用来手动测试app和保证质量的测试版本和一个生产版本。这些版本通常都有不同的设置。例如,测试版本的API的URL就不同于生成版本的。除此之外,还可能有一个免费的基础版本和一个免费的附带其他功能的版本。如果真的那样的话,你已经要处理四种不同的版本了:测试免费、测试收费、生产免费、生产收费。为每一种版本进行不同的配置就会变得很复杂。gradle有
2016-12-13 16:48:29
919
翻译 Gradle for Android-管理依赖
依赖管理是gradle的亮点之一。最好的情况是你所需要的全部只是添加一行代码到build文件中,而且gradle将会从远程库中下载依赖并确保你的项目可以使用它的类。gradle甚至更近一步。万一项目的依赖本身也有依赖,gradle会解决这些事情,做好一切。依赖的依赖叫做传递依赖。本章主要介绍依赖管理的概念,以及多种添加依赖到项目中的方式。我们将要讨论的主题如下:-库 -本地库 -依赖概
2016-12-13 09:29:51
517
翻译 Gradle for Android-基础build自定义
我们从gradle的使用,Android项目的创建和转换开始。现在是时候更好的理解build文件,了解一些有用的task和探索gradle和Android插件了。在这章,我们会学习以下主题:-理解gradle文件 -从build task开始 -自定义build理解gradle文件当使用AS创建一个新的项目,默认会生成三个gradle文件。其中的两个是settings.gradle和build.
2016-12-12 14:38:45
650
翻译 Gradle For Android—从Gradle和Android Studio开始
Gradle For Android—从Gradle和Android Studio开始Android Studio保持最新理解Gradle基础projects和tasksbuild生命周期build配置文件创建新项目Gradle包装器获取Gradle包装器运行基础build tasks从Eclipse移植使用导入向导手
2016-12-10 15:17:44
467
原创 Android时间时区设置和获取
判断系统是否自动获取时区public static boolean isTimeZoneAuto(Context mContext) { try { return android.provider.Settings.Global.getInt(mContext.getContentResolver(), android.
2016-12-02 12:01:31
12467
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人