自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

warmor的专栏

一个人,如果你不按照自己所想的活,那么就终有一天会按照所活的去想。

  • 博客(61)
  • 资源 (2)
  • 问答 (11)
  • 收藏
  • 关注

原创 android学习资源大整合(持续更新ing)

今天抽空整理了下平常学习android常逛的网站(这样以后就可以从这里检索了,便于快速找到所需的资源),以及对我影响比较大的几位大牛的博客,希望对大家有所帮助,如果大家还有更好的学习资源也希望可以共享出来,我也整合到这里,咱们大家一起学习,共同进步!

2016-07-29 12:42:11 6812 25

原创 从零开始编写JNI

最近项目中用到了JNI,本以为很简单的,没想到花了我一天的时间才搞定。主要是在过程中遇到了一个大坑,下面就详细说说。出现的问题是这样的:代码一运行到System.loadLibrary("xxx")时,就提示java.lang.UnsatisfiedLinkError(Failed to register native method xxx),很明显是在register时出错了,我经过多次尝试,才终于解决这个难题。借着这个问题,再来复习一下jni的整体编写流程吧!话不多说,直接上代码,c文件如下:

2021-07-07 20:42:19 575

原创 一次性搞懂Kotlin的内联函数--inline,noinline和crossinline

inline 内联函数  编译时把函数的实现直接放到调用处,省去了参数对象的创建,减少了调用的层级。一般是用在高阶函数里。  内联函数的参数,如果是函数类型(即lambda),调用时,可以使用return(特权),那么返回的就是调用函数的那个函数。private inline fun inLinTest(f1: () -> Unit, f2: () -> Unit ){ Log.i(TAG, "inline test") f1() //runOnUiThread { f1(

2020-07-29 21:14:14 700

原创 Kotlin协程概览

  协程( Coroutines)并不是 Kotlin 提出来的新概念,很多的编程语言都有实现,如:Go、Python 等。。本文所讲,专指kotlin的协程。  在Android 11中,Asynctask已经被废弃了,因为协程可以更简单,直观的实现异步任务。而且协程是谷歌推荐的异步处理机制,那么什么是协程呢?其实很简单,就是kotlint封装的一套线程api(线程框架),类似于 Java 中的 Executor 和 Android &Java中的 AsyncTask、Handler。  协程

2020-07-27 04:51:10 349

转载 史上最好懂的HTTPS讲解

  众所周知,http是用明文传输的,这样效率更高,但是却不安全,https的出现主要是为了解决http传输过程的安全问题,为此它使用了两种加密方式:对称加密和非对称加密。对称加密就是客户端和服务器使用相同的秘钥进行加解密,而非对称加密就是两边使用不同的秘钥(私钥,公钥)进行加解密。  https的流程大概是这样的:1.网站的管理员把网站的公钥,域名,有效时长等信息发给CA机构(用以数字签名)2.CA机构用自己的私钥进行加密,并把生成的加密的数字证书发给网站管理员3.网站管理员把数字证书配置到网站,

2020-07-23 01:51:36 528 1

原创 Java线程同步那些事

  讲线程同步之前先理解一个概念:monitor,即监视器,也叫管程,是用来管理线程同步的东东,可以把它理解为一个房间的钥匙,想要进入房间,使用房间里的东西,就必须先要拿到钥匙。并且同一时刻只能有一个线程可以拿到它。  java中线程同步是用wait/notify,join来实现的,话不多说,直接上代码。public class MyTst { /** * @param args */ private volatile boolean ready = false;

2020-07-18 20:26:58 132

原创 在Java中如何用interrupt优雅的结束线程

一般来说线程执行完run()之后就自动结束了,不过有些时候我们需要线程不停的做一些事情,也就是使用while循环,那么这时候该如何停止线程呢? 这个问题需要分情况来讨论,如果线程做的事情不是耗时的,那么只需要使用一个标志即可,具体的代码如下: class MyThread extends Thread { private volatile boolean isStop = false; public void run() { ...

2020-07-17 21:28:55 284

原创 Kotlin的构造函数看这一篇就够了

在kotlin中,一个标准的继承写法是这样的 class AA : BB() {},你想过没有,为什么AA后面没有括号,而BB后面有呢?Kotlin和Java中有这样两个特性:1.子类继承父类时,需要在构造函数中调用父类的构造函数2.如果一个类没有编写构造函数,系统会默认有一个无参的构造函数因此BB类后面的括号,就是调用的BB的无参构造函数。在kotlin中,还有这样一些特性:每个类最多有一个主构造函数(可以没有),可以有多个次构造函数,如果有主构造函数,那么次构造函数必须要用thi

2020-07-15 01:54:15 1165

原创 Android JNI你应该知道的

一.如何创建jni项目?创建项目时选择Native C++即可。注:编译生成的库在 build/intermediates/cmake/debug/obj下面二.如何手写并编译一个so库https://www.jianshu.com/p/0eddfda3da10二.如何使用第三方so库?1.把so拷贝到app/libs下面,需要带目录(类似arm64-v8a)一起2.在build.gradle加如下的配置sourceSets{ main{ jniLibs.sr...

2020-07-13 10:22:59 113

原创 关于简历与面试的几点心得

最近在着手面试的事情,看了一些文章,结合自己的思考总结出一点自己的心得,分享出来,大家一起探讨学习。首先说说简历,简历最重要的是差异化,一份简历海投、通吃的时代已经过去了,需要针对不同的公司修改简历内容,有下面几点需要注意:1、简历不宜过长,2页纸就够了。2、根据公司的招聘要求,你的关键it技能要与之相匹配,由于不同公司需求不一样,所以你写的it技能侧重点也要做相应的修改(当然要写你真正懂得...

2020-03-06 11:50:31 626

原创 Android SystemProperties系统属性详解

Systemproperties类在android.os下,但这个类是隐藏的,上层程序开发无法直接使用,用Java的反射机制就可以了。Java代码中创建与修改android属性用Systemproperties.set(name, value),获取android属性用Systemproperties.get(name),Native代码中通过property_get(const char *ke

2016-09-02 00:26:44 5201 13

转载 为什么你有10年经验,但成不了专家?

本文转载自:李叫兽微信文章有很多读者问李叫兽:为什么你年纪不大,经验并不多,但却能擅长复杂的商业策略和文案写作,是如何做到的?因此,本文就来回答这个问题:如何成为任何一个领域的专家。如何成为一个领域的专家?有人说主要靠经验,有人说靠天赋,但是大量的研究发现:不论是经验还是天赋,都不是成为专家的关键因素。经验并不能让你成为专家。任何一个工作10年的人都很有经验,但是他们大部分并没有做到领域内专家。N

2016-08-30 19:39:07 2558 39

原创 我是怎样逆袭的?

一个人要想取得一些成就,是需要动力的,这些动力来源有很多,比如:亲情,爱情,想要实现财富自由的野心,甚至偶像崇拜...但归根结底就是两种,追求快乐、逃离痛苦。我的逆袭之路是属于逃离痛苦这一种的,具体来说就是“知耻而后勇“,先看一下我的两次经历吧!        我的高中学校,其实是买进去的,怎么回事儿呢?当时中考时,我没有发挥好,导致了中考失利。这样一来进班时候的成绩就可想而知了,全班80几个人,

2016-08-30 18:42:18 2094 39

原创 java线程同步volatile与synchronized

前段时间面试时遇到这样一个问题:使用volatile修饰int型变量i,多个线程同时进行i++操作,这样可以实现线程安全吗?我感觉是不可以的,但是又说不出来为什么。下来后翻看了许多资料,终于了解了volatile的含义和用法了,一起来看看吧。提到线程同步,我们经常会想到两个关键字:volatile和synchronized,那么这两者有什么区别呢?volatile是变量修饰符,其修饰的变量具有可见

2016-08-24 01:11:46 2095 19

原创 王宝强老婆做错什么了?

我也不知道呀!自己连女朋友都没有还净操心别人!

2016-08-16 22:55:38 3520 107

原创 我的“专家”之路

今天是七夕,祝有情人的终成眷属,没情人的早日找到自己的另一半。说起七夕,我想到网上的一个段子:白娘子故意下雨骗许仙的伞,祝英台十八相送时装疯卖傻调戏梁兄,七仙女挡住了董永的去路,牛郎趁织女洗澡拿走她的衣裳……这些故事告诉我们:伟大爱情的开始,总归得有一个先耍流氓。看到这么多成功的案例,相信对那些单身的同学会有些启发的,额。。我只能帮到这儿了。        好了,闲言不多说了,下面聊点正事儿~前几

2016-08-09 23:18:00 2641 54

原创 老罗Android视频教程第二季(全套视频+源码)

老罗的Android开发视频第二季重磅来袭,快来围观吧~我分享在了百度网盘,地址是:http://pan.baidu.com/s/1bpsmWiV,密码是:2piy 拿走不谢~

2016-08-06 19:26:24 4105 3

转载 Android开源项目推荐之「网络请求哪家强」

终于看到写网络请求相关的优质文章了(等了好久~),帅比张列了三种比较常见的网络请求框架,并详细的讲解了它们的区别,绝对是干货,我们一起来看看吧!(本文转载自 stormzhang 的微信公号:Android开源项目推荐之[网络请求哪家强])原创 2016-08-04 stormzhang AndroidDeveloper   阅读本文大概需要 5.20

2016-08-04 22:03:13 1954 12

转载 Android开发如何进阶?

做android开发一两年后,很多人就会有这样一个疑问“我到底该如何再提高自身的技术水平呢?”下面来看看android开发的导师级人物"stormzhang"是如何看待这个问题的。(本文转载自:stormzhang的知乎文章https://zhuanlan.zhihu.com/p/20691055?refer=stormzhang )Android开发如何进阶?st

2016-08-03 23:46:43 4692 25

原创 史上最全的Java&Android面试题搜集整理

最近在忙着准备面试,所以从全网搜集了一下java和android相关的面试题目,应该能够包含80%以上的试题吧~如果大家还有一些比较全面优质的题目资源,欢迎告知,我会继续补充进来,以便于更多同学可以从中获益。android性能优化系列 http://www.trinea.cn/android/performance/2016JAVA与Android面试题整理 http://www.no

2016-08-01 13:04:59 15801 38

原创 生活需要仪式感

“你每天最好在相同的时间来。”狐狸说道,“比如,你定在下午四点钟来, 那么到了三点钟,我就开始很高兴。时间越临近,我就越高兴。等到了四点,我就很焦躁,会坐立不安;我就会发现幸福的代价。但是,如果你随便什么时 候来,我就不知道在什么时候该期待你的到来,我们需要仪式。”“仪式是什么?”。“这也是经常被遗忘的事情。”狐狸说,“它使某个日子区别其他日 子,使某一时刻不同与其他时刻。“以上这段对

2016-07-31 23:58:32 6989 10

原创 android学习之布局动画的使用

之前写过一篇android动画入门里面介绍了Frame(逐帧)动画和Tween(补间)动画的使用, 感兴趣的朋友可以先看下。动画一共分四种,今天接着介绍下Layout(布局)动画的使用。        布局动画就是当布局上面的子控件发生变化(增加,删除,显示,隐藏)时所产生的动画,android默认是没有动画效果的,如果要实现这样的效果那就只能自己动手了。        提起布局动画就不得

2016-07-31 23:19:33 1734 5

转载 如何发现优秀的开源项目?

今天给大家奉上一篇干货,在这里你可以学会github最常用的方法,以此来找到优秀的开源项目,并且作者还为我们推荐了一些很棒的资源,有了这些,以后做android开发就有了很好的参考了!本文转载自:csdn stormzhangV之前发过一系列有关 GitHub 的文章,有同学问了,GitHub 我大概了解了,Git 也差不多会使用了,但是 还是搞不清 GitHub 如何帮助我的工作

2016-07-31 17:18:25 2413 4

原创 如何正确学习并提高学习效率?

我们在考试或是面试之前通常都会做一些相关知识的准备工作(搜集知识点并记忆下来),但是有时候这个准备工作我们却做的不那么好,总是状况连连,比如,拿着书本or文档看了半天,觉得这些概念都很熟悉,但是合上书本却说不出来个所以然;再比如,私下里觉得准备工作都做的差不多了,等到真正上“战场”时才发现对一些知识点仍然感觉似是而非,不能确定。出现这些情况就说明我们的学习方法有问题了,我也为这件事深深的苦恼,于是

2016-07-30 11:32:24 2246 6

转载 国内一线互联网公司内部面试题库

刚刚看到了一篇比较全面的Android面试题总结,都是国内一线互联网公司的面试题目,很久没有见到这么良心的精品干货了,你。。。绝对值得拥有~(转载自:CSDN: http://blog.csdn.net/rain_butterfly)面试题来自于百度、小米、乐视、美团、58、猎豹、360、新浪、搜狐内部题库熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。以

2016-07-21 23:37:19 4453 8

原创 Android面试题及其答案(三)

1、list map set三个接口,存取元素时,各有什么特点?List与Set都是单列元素的集合,它们有一个功共同的父接口Collection。Set里面不允许有重复的元素.存元素:add方法有一个boolean的返回值,当集合中没有某个元素,此时add方法可成功加入该元素时,则返回true;当集合含有与某个元素equals相等的元素时,此时add方法无法加入该元素,返回结果为fal

2016-06-12 00:40:58 2548 12

原创 android关于屏幕适配的几点建议

1、使用wrap_content、match_parent、weight;2、使用相对布局,尽量不使用绝对布局;3、使用限定符,如:layout-large/xxx.xml,这样大屏设备就会自动使用该布局;4、使用最小宽度限定符,如:layout-sw700dp/xxx.xml,这样当屏幕的宽度超过700dp时就会使用该布局;5、针对不同的分辨率,提供具体的布局,如:res/lay

2016-06-11 22:54:29 7996 6

原创 Java内存管理

Java程序实际上是把内存控制的权力交给了Java虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那排查错误将会成为一项异常艰难的工作。而且了解了Java的内存管理,有助于优化JVM,从而使得自己的应用获得最佳的性能体验。所以还等什么,赶紧跟着我来一起学习这方面的知识吧~Java内存管理分为两个方面:内存分配和垃圾回收,下面我们一一的来看一下。Jvm定义了5个区

2016-06-06 20:28:53 4471 8

原创 Android面试题及其答案(二)

内存相关的问题在面试中被问到的概率还是比较大的,而且内存优化对于一个程序的性能而言也是至关重要的,现在就让我们一起来学习吧!不废话,直接上干货~一、内存泄漏内存泄漏就是我们对某一内存空间的使用完成后没有释放。主要原因:导致内存泄漏最主要的原因就是某些长存对象持有了一些其它应该被回收的对象的引用,导致垃圾回收器无法去回收掉这些对象。出现的场景:1.数据库的cursor没有关闭

2016-06-05 13:41:29 6398 2

原创 Android加载大图的优化策略

当我们使用大的Bitmap图片时很容易出现OOM的现象,今天我们就来看下该怎么解决这个问题。一般有两种方法:1、压缩图片;2、LruCache缓存;当然这两种方式同时使用效果更好^^一、压缩图片先介绍下图片质量(Bitmap.Config),一共有4种:ALPHA_8 只有透明度,没有颜色,那么一个像素点占8位。RGB_565 即R=5,G=6,B=5,没有透明度,

2016-06-04 14:18:22 5534 1

原创 Android面试题及其答案(一)

handler vs AsyncTaskAsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程。优点:l  简单,快捷l  过程可控       缺点:l 在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来Ha

2016-06-02 23:31:04 6031 1

原创 Android中网络通信的几种方式

Android网络编程分为两种:基于http协议的,和基于socket的。基于Http协议:HttpClient、HttpURLConnection、AsyncHttpClient框架等基于Socket:(1)针对TCP/IP的Socket、ServerSocket(2)针对UDP/IP的DatagramSocket、DatagramPackage(3)Apache Mina框

2016-06-02 23:11:03 7350 2

原创 关于Fragment的方方面面

简介    Fragment相当于是一种特殊的Activity,它需要被嵌套到Activity上面才能起作用,那么对于大屏设备(如:平板)就就可以考虑在一个Activity上面放置多个Fragment,这样可以充分利用屏幕面积,而且也可以更方便用户进行交互操作,当然在手机上面也可以方便的使用它,有了Fragment,我们的APP可以针对平板或是手机做不同的适配。Fragment是在Androi

2016-06-02 19:07:46 5085 1

原创 Android中六种更新UI的方法

子线程与UI线程交互,以更新UI的方法,大致有以下五种:1)、handler和message机制:通过显示的抛出、捕获消息与ui进行交互。2)、Activity.runOnUiThread(Runnable):如果当前线程为ui线程,则立即执行;否则,将参数中的线程操作放入到ui线程的事件队列中,等待执行。3)、View.post(Runnable):将操作放入到message队列中,

2016-06-01 17:42:49 2302 4

转载 Android AsyncTask两种线程池分析和总结

该文章转载自:http://bbs.51cto.com/thread-1114378-1.html(一)    前言在android AsyncTask里面有两种线程池供我们调用1.    THREAD_POOL_EXECUTOR, 异步线程池2.    SERIAL_EXECUTOR,同步线程池正如上面名称描述的那样,一个是异步线程池,多个任务在线程池中并发执行;还有一个是同

2016-06-01 16:55:54 9594 1

原创 AsyncTask的使用及原理分析

Android的AsyncTask比Handler更轻量级一些,是用来做简单的异步处理的。使用的优点:l  简单,快捷l  过程可控       使用的缺点:l  在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来.AsyncTask定义了三种泛型类型 Params,Progress和Result。Params 启动任务执行的输

2016-05-31 23:57:24 3500 2

原创 Activity的加载模式解读

Android是用launchMode属性来定义activity的加载模式的,如在AndroidManifest里面写:activity android:name=".Activity2" android:launchMode="singleInstance">加载模式一共四种,下面分别介绍:standard:就是intent将发送给新的实例,所以每次跳转都会生成新的Activity。

2016-05-26 22:02:40 1009 6

原创 横竖屏切换时Activity的生命周期

1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次;2、设置Activity的android:configChanges=”orientation”时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次;3、设置Activity的android:configChanges=”orientatio

2016-05-26 15:12:08 796

原创 android view从无到有的过程

在搜集Android view绘制流程的相关知识时,发现这里面的流程还是有些复杂的,准备了好几天,才敢提起笔来。下面就直入主题吧!view绘制流程是从ViewRoot的performTraversals()方法中开始的,在该方法中会执行view绘制的三部曲,即:measure(测量视图的大小),layout(确定视图的位置)draw(绘制视图的内容)。下面这张图明确的展示了该过程:

2016-05-26 02:51:52 3398 11

原创 一个万能的传送门

刚刚访问郭霖大神的博客时,发现了一个万能的导航网站,里面简直是包罗万象,无所不有。随便举几个吧:各种大牛博客,各种开发工具,各种名书推荐,各种在线课堂。。。甚至还有---恋爱技巧,装X宝典!只有你想不到,没有它不做不到的。这是一个神奇的学习,交友,装X,养生的传送门~~传送门入口:Entrance 拿走不谢

2016-05-25 10:40:41 1323 3

智能聊天机器人之图灵机器人

这是基于图灵机器人实现的智能聊天机器人,她可以回答你的任何问题,所以绝对是你聊天的好伙伴,聊天的界面有点类似于微信,非常简洁,当然还可以在此基础上进行语音方面的扩展,这样你就可以跟她进行语聊啦,有没有很觉得很酷呢?

2016-05-18

SurfaceView实现示波器

使用SurfaceView开发的一个简易示波器,属于SurfaceView绘制的入门基础。

2016-05-12

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除