自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

牛谱乐的博客

以梦为码,不负韶华

  • 博客(53)
  • 收藏
  • 关注

原创 重拾Android之路(二十五) Realm数据库的使用

在Android开发中,我们经常会遇到这样的情况,就是需要将数据保存到手机上,通常我们有这么几种方法使用SharedPreference,这里我们存储的数据,可以快速读取,快速写入,使用很方便,但是他也有一个缺点就是如果存储的内容非常多,或者我们想把读出来的数据进行一些格式化操作,那么这种的方法无法实现通过字节流的方式将数据输出保存到本地存储空间中,根据手机性能读取速度可能较为缓慢,并且数据...

2019-07-15 18:02:21 808 1

原创 重拾Android之路(二十一)Android的动画

总的来说Android的动画一共分为三种,分别是间补动画,帧动画和属性动画。间补动画和帧动画比较简单,这里会简单介绍,对于属性动画,可能会说的更多一些间补动画(Tween)所谓的间补动画,就是指改变了当前图像的显示位置,样式和形式,但是对于组件的本身来说依然是保持原来的样子。举个例子来说就是如果我们通过间补动画将一个ImageView进行了移动,表面上看上去我们的ImageView是发生了...

2019-07-15 10:36:25 216

原创 重拾Android之路(二十四)Android Gradle的配置

概念Gradle是帮助我们管理Android项目的工具,可以帮我们实现快速引入依赖库,编译方式,多渠道打包等工作。一开始在开发Android项目中使用的是eclipse,其中引入依赖库时,需要从网上下载下来,然后再导入到项目中,过程非常繁琐。...

2019-05-23 15:49:53 702

原创 重拾Android之路(二十三)组件化和路由

网上关于组件化和路由的文章非常多,自己看了之后最大的感觉都是好深奥,好难懂。特别是对于新手来说,是特别难入手。但是我们现在的项目有比较大,如果继续使用原有的项目结构,每次编译和执行都要耗费很多的时间,所以使用组件化是重中之重,没办法,硬着头皮硬上。为什么使用组件化使用组件化之前,我们必须要知道是什么样的情况让我们想要去使用组件化,而放弃了我们使用了很久的原有操作。通常情况下,我们写一个...

2019-04-26 14:18:45 228

原创 Spring Boot学习记录(二) 启动原理

前面我们在介绍Spring Boot的基本目录结构时,我们有说到一个文件,如下图所示在这个文件中我们包含了一个可以启动我们应用的代码,如下@SpringBootApplicationpublic class IyingApplication { public static void main(String[] args) { SpringApplication....

2019-03-20 12:05:09 167

原创 Spring Boot学习记录(一)创建应用和基本配置

当2019年还没有到来的时候,就听到了各种各样的声音,说2019年注定会是互联网行业的寒冬,企业面临裁员,现金流运转困难等事情,这些还真的被说中了。所以我决定给自己做一些知识储备。选来选去,我选择了两个,一个是Java后台,另外一个是IOS开发。但是我决定把Java后台放在首要的位置。其实对于我来说,关于Java后台的内容,我是什么也不会,所以完全就是在各种各样的探索。可能我这样的学习方法对于打...

2019-03-18 18:54:48 313

原创 重拾Android之路(二十二)算法和加密

主要整理了Android中所使用的算法和加密,包括MD5、SHA、DES、AES、RSA等数字签名数字签名主要用到了非对称密钥加密技术与数字摘要技术。数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。 如果相同,则说明收到的信息是完整的,在传输过程中没有...

2019-03-05 19:13:09 420

原创 Android开发之推送服务(三) 集成Oppo和vivo推送

Oppo推送服务,也是在Oppo手机中使用的比较多。而且现在Oppo和Vivo两款手机最早提出美颜功能,所以这两款手机在市场上的占有率还是比较高的。Oppo推送目前已经开发注册,Vivo目前只对部分应用开发了推送服务功能。所以目前部分应用无法使用vivo推送的暂时不要着急,后面都会有的。OPPO推送首先还是先去Oppo开放平台注册自己的账号和添加应用,然后获取AppKey和AppId等信息,...

2019-02-12 16:55:37 20889 9

原创 Android开发之推送服务(二) 集成小米推送

小米推送主要是用来适配小米手机的。所以,在做的时候,一般会判断当前手机是否是小米手机,如果是小米手机,则去使用小米推送,注册小米推送,如果不是,则默认使用Umeng推送。在集成小米推送之前,需要先注册小米开发者账号,具体的步骤,这里不再叙述,看注册为开发者小米推送小米推送同时支持Android和iOS两大移动平台,推送稳定。。。算了,我真的编不下去了,想看的,去官网看看他们的文档吧。小米推...

2019-02-12 15:20:40 1851 1

原创 Android开发之推送服务(一)集成Umeng(友盟)推送

目前所在的公司让我把之前项目中的推送重新整理一下。因为现在的需求是在应用被后台杀死的情况下,依然可以推送消息,那么只是单一的使用一个推送工具是无法实现的,比如友盟。那么就需要同时集成Umeng,华为,小米,Oppo等手机厂商提供的PushSDK。这本来是简简单单的一件事,突然之后,工作量无形之后增大。不过好在经过一段时间的尝试,终于集成成功,今天把这个历程记录下来,方面以后查看。Umeng推送...

2019-02-12 12:29:11 8914 1

原创 阿里云旺即时通信OpenIM(一)基础学习

文章目录概述下载申请创建项目概述OpenIM是阿里百川开发的一套即时通信的第三方SDK,可以帮我们快速实现即时通信的功能。免费,功能不是很强大,而且已经停止维护和更新了。我在论坛上看到很多人在找各种各样的问题答案,却没有几篇博客能解决问题的。自己在做开发的时候也遇到了很多问题。所幸目前磕磕绊绊集成完成,记录下来。下载SDK下载还好,直接去到阿里百川的官网下载,下载之后,这里除了有SDK之外...

2018-12-25 20:09:41 15783 4

原创 重拾Android之路(十九)Glide框架

Glide加载图片显示加载百分比这个网上有很多解答,不过一直没有找到理想的,不过经过自己的摸索和试验,终于自己搞到了一套加载图片显示加载百分比的方法,这个方法还是比较简单的首先需要添加gradle的依赖implementation 'com.github.bumptech.glide:glide:4.8.0'annotationProcessor 'com.github.bumptec...

2018-11-13 15:06:17 178

原创 重拾Android之路(十八)RxJava的函数

重拾Android之路(十八)RxJava的函数好久没有写博客了,今天趁着这个时间,把自己复习的RxJava再重新梳理一遍。这里基本的概念已经没有什么问题了,关键是RxJava中的方法非常之多,有时候也会有各种各样的改动,那么在这里将大部分的RxJava中的方法做一个汇总,希望在自己学习的同时,也能帮助后来者。本篇文章是以RxJava2.2.3版本为核心部分RxJava方法表格...

2018-11-05 15:42:18 546

原创 Android NDK开发(五)JNI和NDK

今天先说一下JNI和NDK的概念,然后在记录一下CMake开发的步骤和注意事项概念JNI:Java Native Interface标准是Java平台的一部分,JNI是Java语言提供的让Java语言和其他语言(尤其是C/C++)进行沟通,Java语言通过JNI可以调用C/C++代码,C/C++代码也可以通过JNI调动Java代码 NDK:Native Development Kit是一...

2018-08-13 17:44:11 296

原创 重拾Android之路(十七)注解

介绍Annotation 中文译过来就是注解、标释的意思,在 Java 中注解是一个很重要的知识点,但经常还是有点让新手不容易理解。 官方的介绍如下: Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。Java 注解是从 Java5 开始添加到 Java 的。参考资料秒懂java注解 And...

2018-08-09 17:46:06 172

原创 Android中图片加载框架Glide的使用

介绍Glide是一个快速高效的Android图片加载库,注重于平滑的滚动。Glide提供了易用的API,高性能、可扩展的图片解码管道(decode pipeline),以及自动的资源池技术。 Glide 支持拉取,解码和展示视频快照,图片,和GIF动画。Glide的Api是如此的灵活,开发者甚至可以插入和替换成自己喜爱的任何网络栈。默认情况下,Glide使用的是一个定制化的基于HttpUrl...

2018-08-08 13:52:48 866

原创 Makefile函数(六)

Makefile中可以使用函数来处理变量,从而让我们的命令或者规则更加灵活。函数调用之后,函数返回值可以当做变量使用使用函数在Makefile中可以使用函数来处理变量,从而使我们的命令或者规则更为灵活。make所支持的函数并不多,基本使用方法如下$(<function><arguments>)#或者${<function><argume...

2018-07-30 14:33:24 163

原创 Makefile的变量(五)

变量的基础变量在声明时需要给初始值,在使用的时候要使用$(name)的方式,这里可以使小括号()也可以是{}。如果我们要使用真实的$,那么需要使用$$表示。objects = program.o foo.o utils.oprogram : $(objects) gcc -o $(objects)$(objects):defs.h变量会在使用它的地方,精确的展开...

2018-07-28 22:06:07 238

原创 Makefile书写命令(四)

每条规则中的命令和操作系统Shell的命令行是一致的。make会按照顺序一条条的执行命令,每条命令的开头必须以tab键开头的,那么make会认为是一条空命令 我们在UNIX下可能会使用不同的shell,但是make的命令默认是被/bin/sh–UNIX的标准shell解释执行的。除非你特别指定一个其他的shell。显示命令通常make会把需要执行的明林个在命令执行前输出到屏幕上,当我...

2018-07-28 15:34:45 240

原创 Makefile总述(三)

Makefile里有什么Makefile中主要包含五个东西:显示规则,隐晦规则,变量定义,文件指示和注释 显示规则:说明了如何生成一个或多个目标文件,这是由Makefile的书写着明确指示的要生成的文件,需要依赖的文件,生成命令 隐晦规则:由make自动推导的功能,可以让我们写一些比较粗糙的Makefile文件 变量定义:在Makefile中我们需要定义一系列的变量,变量一般都是字符串,...

2018-07-27 17:36:29 220

原创 Makefile中变量的使用(二)

首先让我们来看一个例子edit: main.o kbd.o command.o gcc -o edit main.o kbd.o command.o在这里我们发现所有的.o文件都被使用了两次,如果我们的工程需要加入新的.o文件,那么我们需要添加两次(其实是三次,因为我们一般会在末尾加上clean)。为了Makefile的易维护性,我们在Makefile中使用变量,变量也...

2018-07-27 15:10:04 591

原创 Makefile介绍和基本规则(一)

题外话: 对于大部分的前端人员或者是不懂C/C++的人员来说,我们对于编译过程并不是非常了解,那么我们先说一下,什么是编译 一般来说,无论是C,C++,还是pas,首先都是把源文件编译成中间代码文件,在Windows下也就是.obj文件,UNIX下是.o文件,这些文件统称为Object File,这个动作叫做编译,然后再把大量的Object File文件合成可执行文件,叫做链接。 编译时,编...

2018-07-27 14:07:28 2792

原创 Makefile的使用中的一些容易遗忘的小知识点

源文件的编译在Linux下,如果要编译C源程序,我们要使用GNU的gcc编译器,下面的一个例子是用来说明如何使用gcc编译器 如下,是我们的一个C语言的源程序main.c#include <stdio.h>int main(int argc,char ** argv){ printf("hello world");}如果想要编译这个文件,我们需要直接在终端...

2018-07-27 11:27:43 201

原创 Execution failed for task ':app:transformNative_libsWithStripDebugSymbolForDebug'错误解决

打开了一个第三方应该,结果Android studio报错,自己在网上找了很长时间的解决办法,再次记录一下。系统:macbook pro android studio 3.1 java 1.8问题描述:错误信息 比较多,直接将错误信息贴出来org.gradle.api.tasks.TaskExecutionException: Execution failed ...

2018-07-25 09:28:43 2681 1

原创 重拾Android之路(十七)MVP

关于MVP,MVVM,早就烂大街了,说出来可能都不要意思,在实际项目中,我没有将这两个内容使用的非常熟练,因为在项目中,一般都是一些比较小型的项目,真的用这些模式的地方并不多。但是最近几天在GitHub上面看到一个不错的共享程序–头条。感觉各方面都挺好的,所以就在闲暇的时间仔细研究了一下,发现了很多值得学习的地方,那么记录一下上面用到的技术,自己也要好好的学习,这是地址仿今日头条 今天来说一说M...

2018-07-24 17:53:07 144

原创 Android NDK开发(四)C语言预编译

预编译预编译又叫预处理,宏定义,宏替换,关键字是#define,其本质是替换文本。 C语言执行的过程编译–>> 生成目标代码合并–>> 将目标代码和C函数库合并,生成最终可执行文件执行 预编译主要是在编译时期完成文本替换工作,常用的预编译指令有#include,ifndef,#endif,define,pragma once 在jni.h文件...

2018-07-04 15:08:44 490

原创 Android NDK开发(三)C语言IO流

文件IO我们在开发java应用程序中,会使用File类,FileWriter类,FileReader类,同时也会使用FileOutputStream,FileInputStream,BufferInputStream,BufferOutputStream。那么有这些类可以让我们非常方便的读取文件,如下面的这个例子,是java的文件读取例子// 读取文件中的字符 private ...

2018-07-04 10:47:03 662

原创 Android NDK开发(二)C语言基础语法

接上篇Android NDK开发(一)C语言基础语法字符操作字符数组#include<stdio.h> void charArray(){ char c[15] = {'h','e','l','l','o','w','o','r','l','d'}; printf("%s\n",c); c[0] = 'a',

2018-07-03 20:45:30 488

原创 Android NDK开发(一)C语言基础语法

最近一段时间在攻克Android NDK开发。虽然大学的时候主要的学习是放在C/C++上的,但是自从大学毕业之后,就把所有学到的只是都还给老师了,所以,趁着这个机会,将C语言和NDK开发好好的总结一下,学习一下。 自己在网上也看了很多博客,感觉大神们写的都是比较难以理解,特别是像现在这种工作了一天的状态,想要再看这些东西的时候,都感觉花眼了。所以,自己希望能够将基础知识理顺。首先先来...

2018-07-03 17:23:28 6695 2

原创 Ubuntu16.04编译LibreOffice Android版

公司目前正在做的是办公软件的内容,需要依赖于LibreOffice的库。那么其实在这之前我们需要把整个流程细细的分析一下。 要求是对Micorsoft公司的word文档,xecle文档,ppt文档可以进行展示,编写,创建的操作。我第一次想到这个问题的时候,脑海里是一片蒙圈的状态,毕竟之前做过类似要求的,但是一般都是说要求展示文档内容即可,并没有要求编辑功能。没办法只能自己研究。 不过好在我们知...

2018-07-02 20:39:10 1440 1

原创 Ubuntu 16.04 配置安装环境

最近一段时间,由于工作需要,需要重新配置Ubuntu的开发环境。由于上一次配置开发环境还是在大学期间,有一些细节已经忘了,再加上版本更新,很多内容和之前都有了很大的区别,所以借助这次机会,重新配置一下环境,并且将配置环进的过程记录下来。附录:Ubuntu使用快捷键制作镜像关于制作镜像和重新安装的方式,我相信大家肯定有这样那样的体验,自己琢磨,肯定能找到一个适合自己的方式。一般都是在Wind...

2018-07-02 14:50:11 10659

原创 IOS中SQLite3的使用

介绍sqlite是纯C语言中底层的数据库,在OC和Swift中都是经常使用的数据库,在开发中,可以使用代码创建数据库,可以使用图形化界面创建数据库。例如SQLiteManager、SQLiteStudio等 常用方法 方法名称 描述 OpaquePointer: *db 数据库句柄,跟文件句柄FIFL类似,这里是sqlite3指针 sqlite3...

2018-07-02 09:18:36 1122

原创 IOS打开Micosoft文档

因为从广州来到了北京,换了工作,所以现在公司要求做的东西跟之前不太一样。做的一款办公软件,这里面就包括对微软doc文档,ppt文档,xls文档。Android端的我已经做了一个版本,然后是非常简单的打开,没有编辑功能。现在我要做的就是IOS版本。所有的东西都是自己从0开始的,记录下来,方便自己,也给后来者一些提示。 Office文件的IOS-UTI支持 文件格式 UTI ...

2018-07-02 09:17:13 1220

原创 IOS框架总结一

SnapKitSnapKit,一个经典的Swift版的第三方库,专门用于项目的自动布局,目前在github上的stars就高达9340颗星,这是一个不小的数字,亦足以证明它存在的非凡意义和作用。作者认为,在iOS开发(swift)中,它是用于项目最优秀的自动布局的必选库之一,它的作者仍然是写Objective-C的第三方库Masonry的大牛 - @Robert Payne. 关于怎么安装就...

2018-07-02 09:15:17 1188

原创 IOS文件操作

遍历某个文件夹的文件获取当前路径let manager = FileManager.defaultlet urlForDocument = manager.urls(for: .documentDirectory, in:.userDomainMask)let url = urlForDocument[0] as URLprint(url) 结果: 对指定路径进行...

2018-07-01 12:26:24 1211

原创 C++基础学习记录

C++ 是一种中级语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C++ 可运行于多种平台上,如 Windows、MAC 操作系统以及 UNIX 的各种版本 C++中的“\n”和endl的区别 “\n”表示的是一个回车符的字符串,std::endl是流操作子,输出的作...

2018-07-01 12:18:01 456

原创 Android线程总结一

自己写了很多博客了吧,今天在写项目的时候,需要把之前使用的一些AsyncTask的内容切换成线程池,结果发现,我竟然没有写过这样的总结,真的是太大意了,所以我现在就把之前使用过的关于线程的问题,不管是AsyncTask也好,还是线程池也好,或者说是Handler,做一个全面的总结,为自己以后复习留下个记录 AsyncTask关于定义 AsyncTask ena...

2018-07-01 11:52:10 167

原创 重拾Android之路(十六)Android高级晋级

Android系统源码学习Binder机制和AIDLActivity的启动过程进程的优先级ServiceManagerWindow和WindowManager开源框架学习OKHTTPRetrofitGlideGsonRealm多线程处理Handler原理AsyncTaskHandlerThreadIntentServiceRxJ...

2018-07-01 11:49:17 351

原创 重拾Android之路(十五)EventBus

在进行项目开发的过程中,我们往往需要应用程序的各个组件,线程之间进行通信,比如子线程中进行请求数据,当数据请求完毕之后,通过Handler或者广播的方式通知UI更新,或者一个Activity中包含两个Fragment,当Activity进行一些操作的饿时候可以通知Fragment进行更新数据。当我们的项目越来越复杂的时候,我们所使用的Intent,Handler,广播就会非常多,然后我们管理...

2018-07-01 11:47:48 116

原创 重拾Android之路(十四)进程保活

随着现在智能手机的普及,越来越多的手机应用充斥着各种市场,然后并不是每一个应用都会在手机里使用,不是每一个应用都会被经常使用,所以,Android手机有自己的一套内存管理方法,当你的手机在一定时间内没有使用该应用,那么可能会被杀死。但是对于我们公司或者说开发者而言,我们肯定不希望这样的事情发生,因为如果一直存活下去的话,手机再次打开的时候,这个应用的使用会比较快速,同样也能得到用户的青睐。那么我们...

2018-07-01 11:46:29 1076

空空如也

空空如也

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

TA关注的人

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