android
万明智
这个作者很懒,什么都没留下…
展开
-
gradle基本使用
相信使用做安卓开发的对gradle并不陌生,gradle是个帮我们build的工具。他与make和ant不同的是它是基于一种语言,而不是配置。这也就使得它拥有更大的灵活性。闲话少说,下面说说基本用法。 1下载gradle 并解压,然后在环境变量中加入它bin文件夹地址。 2 在命令行中输入gradle测试是否可用。如果不可用检查环境变量和是否装了jdk,gradle是依赖jdk的。 3原创 2016-12-17 15:42:55 · 1502 阅读 · 0 评论 -
安卓线程安全
UI线程安全耗时操作不在UI线程,否则会引发NAR,影响用户体验UI非线程安全,不在其他线程操作UI。 既然像网络操作这种耗时的操作不能在主线程,而其他线程又不能更新UI。于是安卓提供了Handler和Looper。可一个看到一个线程只能有一个Looper和MessageQueue。既然是队列也就是先进先出的顺序结构,由Looper一个个取出。还可看成handler在外面,也就是一...原创 2018-07-16 16:20:07 · 1482 阅读 · 0 评论 -
是时候干掉onActivityResult了
两个冤家,handler与onActivityResult安卓中有两个我们常用,但写起来非常不爽的代码。一个是handler,另一个就是onActivityResult了。他们非得让我们都整一个常量,而且看代码时请求和处理逻辑之间跳来跳去。一个字,晕。 我们知道handler大部分用在网络请求上,至于去掉可以看我以前的文章安卓项目易用Ohttp封装,当然这个网络请求封装很多。但对onActivit原创 2017-11-14 19:08:41 · 3101 阅读 · 0 评论 -
程序员的自我修养
如题所述,这是一个关于好程序员的故事。那么什么样的程序员叫好的程序员呢,我们这里之谈技能方面。那这就好办了,好程序员就是写的好代码的程序员。对吗?对不完全对,因为忽略了程序员的一个重要特性,就是改bug和在改bug的路上。于是我们得出好程序员就是产生最少的bug和最快的改好bug。一。产生最少的bug 1.最简单的实现功能:这个道理简单,代码越少bug越少。先不考虑优化、性能这一切东西,也不要用自原创 2017-08-04 11:19:39 · 2974 阅读 · 0 评论 -
安卓项目易用Ohttp封装
在android中的网络请求如果用Handler来传,看代码跳来跳去太累。首先呢,这个是我实际项目中的封装,各位不用担心能不能用的问题。支持的功能:1.无缝在主线程调用回到主线程 2.自动Gson泛型机械,并支持到二级泛型 3.支持Activity结束时,取消所有创建的网络操作 4.支持单个网络操作取消 5.使用链式调用,使用方便Get请求HttpUtil.newBuilder(this)/原创 2017-11-09 16:20:59 · 2078 阅读 · 0 评论 -
安卓优化之SparseArray易懂详解
SparseArray是对hashmap<int,E>的内存优化。它怎么优化的呢,为什么呢。因为知道怎么优化的之后,我们就能更好的理解它的方法和使用它。下面我们从遍历,赋值,遍历体现优化的莫过于它怎么遍历的://可以看到有从零到Size的index。for (int i = 0; i < sparseArray.size(); i++) { int key = keyAt(i);原创 2017-11-09 14:21:50 · 2592 阅读 · 0 评论 -
android studio NDK demo详解
1,首先,要有android studio 2.2及以后版本。 2,生成NDK的demo,点这里 3,如果你成功运行了项目,那么应该猜的差不多了,那个native-lib.cpp就是一个c++文件,Cmake是c++的编译器。下面代码的意思也就是根据cMakeList.txt编译native-lib.cpp,当然是gradle帮我们调的cmake。 externalNativeBuild原创 2017-04-12 16:58:48 · 1545 阅读 · 0 评论 -
自定义dialog简单封装
自定义 dialog,简单代码封装原创 2017-08-14 15:59:49 · 6675 阅读 · 2 评论 -
安卓内存分析实例
上一篇说了,内存分析的基本思路。没看的点这里 但只是说,不通过实践毕竟理解不深。这篇通过我在工作中遇到的一个实例来说一下具体的操作。正如上篇所说的,我给应用加了LeakCanary后检测到了内存泄漏,而没有分析出原因。这时我就用Android Monitor来分析具体哪出错了。dump内存的.hprof文件后,我们直接点击右侧的Analyzer Tasks(直接帮我们分析出泄漏的acivity),结原创 2017-01-20 11:58:40 · 1488 阅读 · 0 评论 -
java垃圾回收与安卓内存分析
首先,我们来说说内存泄漏与内存溢出。我们知道程序运行过程中会产生很多的对象,而有些对象用过之后就不用了。这时候就要对其所占的内存进行释放。如果释放不了,这就造成了内存泄漏。而当多次创建这种对象,这时候内存一直涨超过安卓app可拥有的最大内存就会产生内存溢出。所以,内存溢出和内存泄漏没必然关系。正常情况导致的内存溢出我们就不说了,我们要研究的是内存泄漏,不管它有没有溢出。追究内存泄漏的根源在于对象没有原创 2017-01-18 18:07:59 · 1943 阅读 · 0 评论 -
安卓theme与style详解
安卓app作为一个有界面的程序,谷歌给我们提供了很多UI控件。而控件是功能性的,具体的控件样式却是需要我们自己去控制的。这也就引出了今天话题,安卓的theme与style。说到这个,大家可能都知道theme是主题,也就是整个app的样式。而style是样式,控制的是单个View。是的,希望我们在应用的时候也要铭记这点。也就是说theme是针对application和activity的,当...原创 2016-12-15 11:47:44 · 4934 阅读 · 0 评论 -
安卓真正阴影实现
安卓界面开发中,常会遇到要阴影的情况。大部分我们用android:elevation或多层的Drawable来实现。但对于像素眼的UI来说,偏偏让我们更改阴影的颜色还要模糊度。一般我直接用“系统没有相关属性”怼回去,因为网上实在没找到现成好用的。但最近被逼无奈实现一个,跟大家分享下。 闲话少说,实现效果走一波: 这个布局叫ShadowRelativeLayout,从名字你就知道他继承谁...原创 2018-08-16 11:13:49 · 4855 阅读 · 2 评论