
android
sduliulun
这个作者很懒,什么都没留下…
展开
-
android中常用的弹出提示框
首先是一个最简单的应用,就是弹出一个消息框,在android中可以这样实现 view plaincopy to clipboardprint?1 new AlertDialog.Builder(self) 2 .setTitle("标题" ) 3 .setMessage("简单消息框" ) 4 .setPositiveButton("确定" , null) 5 .s转载 2013-05-16 21:15:24 · 3968 阅读 · 0 评论 -
Android基础-Java基础一
复习一下java语言基础,再有人问你 你会java吗 你可以踏实的说: 会该篇文章不适合java初学者。适合已经会使用java语言编程,想复习java语言基础的童学。Java可运行到各个平台, jre是java的运行环境,面向Java程序的使用者。 JDK是Java的开发和编译环境 Java分三个体系:JavaSE(标准平台,桌面应用)、JavaEE(企业版,支持分布式部署)、j...原创 2018-12-28 17:15:18 · 266 阅读 · 0 评论 -
Android基础-Java基础二
你精通Java语言吗?复习以下内容,让你自信的说:是的 Java面向对象的三大特征:继承、封装、多态。 继承就是子类继承父类的特征和行为。 Java 不支持多继承,但支持多重继承。 子类拥有父类非private的属性,方法。 子类可以拥有自己的属性和方法 子类可以用自己的方式实现父类的方法 extends、implements、super、this、Override、Overlo...原创 2018-12-29 16:55:07 · 159 阅读 · 0 评论 -
Android基础-Java基础三
参考Java常用功能的实例代码:http://www.runoob.com/java/java-examples.htmlJava8新特性:https://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html Lambda 是java8 最大的变化 Lambda 表达式:允许把函数作为一个方法的...原创 2019-01-02 11:16:04 · 159 阅读 · 0 评论 -
Android多进程理解一
一、Java进程和线程进程是操作系统进行资源分配和调度的一个独立单位。 独立性(每个进程都有自己独立私有的一块内存空间)、动态性、并发性(多个进程可在单处理器上并发执行)并发是指在同一时间点只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果。并行指在同一时间点,有多条指令在多个处理器上同时执行线程 包含在进程中。一个进程可以包含多个线程...原创 2019-01-03 14:40:04 · 286 阅读 · 0 评论 -
RecyclerView的NO_POSITION 不是异常值!
RecyclerView 是当前代码中使用最多的控件之一。 代码编写过程中针对列表的点击事件 很多同学都会在自己定义的RecyclerView.Adapter 里面 onBindViewHolder()中添加监听事件。 这里就会发生一个很神奇的事情, 当你通过getAdapterPosition() 去拿当前选中位置的时候有时候会返回-1;导致程序崩溃...原创 2019-01-07 10:32:27 · 1072 阅读 · 0 评论 -
清理项目中的无用资源
项目团队合作中,总会出现一些重复或者无用的资源,特别是经过几次迭代。代码不清爽。以下步骤请依次执行: 多余的import 在项目文件目录右键->Optimize import. 点击Run。 PS:千万不要在项目正在编译的时候执行这个操作。因为编译的时候依赖关系没有完整建立,会删掉很多有用的import。 code cleanUp 在AS中使用 Analyze...原创 2019-01-07 10:33:37 · 1085 阅读 · 0 评论 -
使用PlantIUML编写UML类图
类图画起来比较麻烦,看到有使用code iris导出类图的,试了一下感觉不太好用。也有用SimpleUML的,在studio里面没找到下载包。这里介绍的是window导出UML类图使用方式,这个方式不是直接把java代码转成UML图。UML的内部关系还需要使用简单的代码标记出来。支持把效果导出png图片。个人感觉,对程序员来说,这个比visio 之类的工具要友好一些。它可以用程序员的方...原创 2019-01-07 10:35:50 · 1016 阅读 · 3 评论 -
UML中表示类与类之间的5种关系
1. 继承关系 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。2. 实现关系 实现指的是一个class类实现interface接口(可以是...原创 2019-01-07 10:37:41 · 4462 阅读 · 3 评论 -
使用PlantUML画时序图
程序员画时序图,个人强烈推荐用PlantUML, 写起来方便,直观.先写一个demo看下。@startuml-> CartFragment: 初始化页面activate CartFragmentCartFragment -> OperaAdapter: 初始化适配器activate OperaAdapterCartFragment -> CartViewMod...原创 2019-01-07 10:41:14 · 2202 阅读 · 0 评论 -
Atlas
看看阿里的动态组件化: https://github.com/alibaba/atlas/tree/master/atlas-docs背景: 现在项目中都追求模块化开发、组件化开发。一个是避免代码重复开发(重复造轮子),另一个是方便维护和项目集成。 Android 项目有方法数的限制(常说的64K限制),如果项目太大或者引用了太多的三方库(依赖库的方法数量也会计算在64k中)。...原创 2019-01-07 10:46:11 · 1591 阅读 · 0 评论 -
关于测试
google提倡以测试驱动开发,跟传统的产品功能驱动开发相比,完整的测试驱动开发有以下优点: 快速反馈定位错误 在开发过程中尽早排除代码故障 更快速安全的进行代码重构 稳定的快速的迭代开发,减少技术债务 当你要开发一个新的功能或者对功能进行迭代开发的时候, 你需要先写一个新的单元测试或者添加用例到之前的单元测试中!!!看一眼官方的推荐的Feature开发...原创 2019-01-07 10:47:05 · 1125 阅读 · 0 评论 -
下载AOSP源码、编译、导入AS、运行在模拟器上
因为官方的地址需要翻墙,目前国内可以利用清华大学的镜像库:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ AOSP和Android源码的区别:AOSP+Gapps(谷歌服务包)=原生 安卓官方原生系统是指谷歌搭载在nexus系统产品上的,AOSP指的是开源安卓项目,前者集成了谷歌服务,而AOSP没有,并且可以供开发者进行编译使用 ...原创 2019-01-07 10:51:37 · 2410 阅读 · 2 评论 -
AOSP源码中的目录表示解释
原创 2019-01-07 10:52:00 · 922 阅读 · 0 评论 -
自签名SSL证书的生成
“接口调通了” “业务逻辑完成了”。 但是你的数据是不是在裸奔呢。虽然互联网上大部分的数据都是在裸奔。但是想想自己家的数据在互联网上裸奔 是不是很别扭。要想不让数据裸奔有几个基本的要求:要改用https请求,要进行数据加密 要进行ssl身份验证。简单说一下ssl:SSL 证书遵守 SSL协议,通过在客户端浏览器和Web服务器之间建立一条SSL安全通道 一个有效、可信的 SSL ...原创 2018-12-21 16:24:23 · 2844 阅读 · 0 评论 -
Android SharedPreferences的替代方案MMKV
什么是MMKV?MMKV 是基于 mmap 内存映射的移动端通用 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。https://github.com/Tencent/MMKV为什么要替代SharedPreferences?首先 安全性好。 SP实际上是把键值对放到本地文件中进行存储。如果要保证数据安全需要自己加密。其次 读写速度更...原创 2018-12-21 09:44:31 · 7714 阅读 · 0 评论 -
android 在布局文件中报错:This text field does not specify an inputType or a hint
在安卓项目开发中,在设计项目样式使用到EditText这个标签时,有的时候会有警告:This text field does not specify an inputType ora hint原因是:EditText需要指定默认输入类型在标签中加入android:inputType=XXX即可,下面列出XXX的可选值与作用。文本类型,多为大写、小写和数字符号。andro原创 2013-05-16 20:28:18 · 3223 阅读 · 0 评论 -
android模拟器无法启动
运行时无法启动虚拟机 ,报错情况如下:[2013-05-21 15:11:29 - Emulator] Failed to allocate memory: 8[2013-05-21 15:11:29 - Emulator] [2013-05-21 15:11:29 - Emulator] This application has requested the Runtime to te原创 2013-05-21 17:12:51 · 808 阅读 · 0 评论 -
Eclipse不能启动
今天早上,我开始了我的机器,并试图打开Eclipse。而不是打开,我看到这样的: 查看日志文件的显示一下报错:!ENTRY org.eclipse.osgi 4 0 2007-04-09 08:31:36.796!MESSAGE Application error!STACK 1java.lang.NoClassDefFoundError: org/eclipse/core/re原创 2013-05-22 10:37:33 · 4883 阅读 · 0 评论 -
android开发时,xml文件中总是提示某一个错误,修改后仍然提示。
哎,刚开始学android开发,开发环境好不容易搭建好,自己写代码的时候难免犯错,特别是xml编写时如果出现了代码错误,错误提示会一直存在,即使修改了也存在,关掉项目重新打开也存在,关掉Eclipse 重新启动还存在。。。。纠结了 有没有 最后发现了,居然很简单。使用Eclipse中的project-clean就可以搞定了。 希望其他兄弟姐妹们不要再为这个问题困扰。原创 2013-05-21 15:05:09 · 966 阅读 · 0 评论 -
android 调试 报错
今天打开eclipse 进行调试的时候突然出现了报错,报错信息如下:The connection to adb is down, and a severe error has occured. [2013-06-15 09:36:56 - HelloOPone] You must restart adb and Eclipse. [2013-06-15 09:36:56 - Hello原创 2013-06-15 10:29:43 · 981 阅读 · 0 评论 -
Android 同时播放缩放动画和位移动画 时, 位移的路径会发生偏移.
不能理解的bug. Android 同时播放缩放动画和位移动画 时, 位移的路径会发生偏移. Animation mTranslateAnimation = new TranslateAnimation(xxxxxx);// 移动参数 自己写 mTranslateAnimation.setDuration(1000); An原创 2015-08-27 17:08:59 · 1781 阅读 · 0 评论 -
使用android studio 查看 android 的源代码
以前都使用 source insight 查看源代码. 但是一直使用的都是盗版的. 决心改换成studio. Android 源码比较大. 相对于Eclipse . 使用studio 会更好一些. 我的电脑以前安装过Eclipse的开发环境, 所以 JDK 和ADT 都有. 不需要重新配置. 首先, 下载一个 android s原创 2015-09-26 17:33:40 · 1301 阅读 · 0 评论 -
About ANR and OOM
1. ANR 1.1 什么是ANR? ANR(Application Not Responding) 在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:ApplicationNotResponding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用转载 2015-11-19 14:36:08 · 1553 阅读 · 0 评论 -
Android 三种sendBroadCast的方式对比
作为android 的四大基本组件之一的 BroadCast Receiver,是进行进程间通信的重要手段,几乎所有的应用都会注册和发送各种不同的intent, 那么有一个问题,你是否了解Intent? 作为延伸,我们需要了解一下sendBroadcast() / sendOrderedBroadcast() / sendStickyBroadcast() 这三个方法的不同。1)原创 2015-12-07 16:10:30 · 43621 阅读 · 3 评论 -
android studio 导入项目太慢
今天从github上下载了一个项目, 发现导入Android studio的时候 发现好慢。找了下解决办法,自己留个记录原因: 下载的项目和你当前已经下载的grandle 不一致, 导致导入的时候到网上下载相应的版本。 坑爹吧。。。我能不能连上google的服务器还难说呢。 让我去那边下载东西。。。还几十M。。。最简单的办法,修改你这个需要导入的项目。需要修改的文件原创 2016-03-18 22:23:05 · 9056 阅读 · 2 评论 -
android 自定义 PDF view
前一段时间帮朋友做了一个在android 端查看PDF文档的功能,发现PDF文档的处理,网上资料有点混乱。研究了很长时间,也没有很好的成熟的方案。 针对这些文档的处理, 一定是有一些特殊需求的, 比如 实现画笔标注, 实现预览, 实现各种自定义的滑动操作。 本文只是针对PDF类型的文档, 其他类型的文档不支持。 关于原创 2016-05-12 15:21:09 · 2559 阅读 · 0 评论 -
调试Kotlin 例子Demo的时候遇到了坑
这段时间想研究Kotlin,从GitHub上找到了 kotlin的一个实例:Kotlin-for-Android-Develpers-master。下载之后发现编译不过。报错xxxxx\Kotlin-for-Android-Developers-master\app\build.gradle: Failed to resolve: common解决办法:修改 根目录的build.gradle中的r...原创 2018-06-12 10:57:18 · 1271 阅读 · 0 评论 -
Android 代码混淆
代码混淆最好在项目开始阶段就开始,便于及时发现混淆后的代码问题。可以在app/build.gradle中设置开启。 项目代码的混淆有套路:1. 默认要添加的配置-optimizationpasses 5 # 指定代码的压缩级别-dontusemixedcaseclassnames # 是否使用大小写混合-dontskipnonpubliclibraryclasses...原创 2018-12-04 10:04:18 · 156 阅读 · 0 评论 -
Android屏幕适配
快速适配所有Android设备。 https://github.com/JessYanCoding/AndroidAutoSize原创 2018-12-04 10:05:17 · 133 阅读 · 0 评论 -
Android过度绘制解决方案
过度绘制的危害以及产生的原因,可以参考网络资料。优化过度绘制,是为了保证APP的流畅度,而APP卡顿不全部是因为布局问题导致的, 布局问题会导致渲染时间延长 从而造成卡顿。所以当有掉帧的时候,不一定是布局的问题PS:调试APP过度绘制,先打开开发者选项中的:GPU呈现模式分析和调试GPU过度绘制的开关。打开之后看这个页面的过度绘制情况。1. 页面布局上面颜色表示的含义: ...原创 2018-12-04 10:07:57 · 940 阅读 · 0 评论 -
在Lib中使用ButterKnife
想实现的效果: 代码中为了实现业务逻辑的解耦,经常使用多module进行业务逻辑处理。这就需要有一个common的库,对各类通用的弹框,组件等进行处理。 遇到的问题: 在common库中使用ButterKnife绑定控件一直报错 “Attribute value must be constant” 问题原因: library module中的R中id未用fina...原创 2018-12-04 10:12:14 · 651 阅读 · 0 评论 -
Java反射机制
什么是反射机制?在运行状态中获取并调用对象方法的功能叫做java反射机制。反射机制提供5个功能: 1. 在运行时判断任意一个对象所属的类。 2. 在运行时构造任意一个类的对象。 3.在运行时判断任意一个类所具有的成员变量和方法。 4. 在运行时调用任意一个对象的方法。(最常用) 5. 生成动态代理。 一般的代码套路如下:// 获取...原创 2019-01-10 09:42:50 · 222 阅读 · 0 评论