自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 收藏
  • 关注

转载 Linux 下进程与线程的基本概念

2019-10-01关键字:进程、线程、信号量、互斥锁什么是程序?程序就是存放在磁盘上的指令和数据的有序集合,就是源代码编译产物。 它是静态的。什么是进程?进程就是操作系统为执行某个程序所分配的资源的总称。进程是程序的一次执行过程,因此它与程序不同,它是动态的。它的生命周期包括创建、调度、执行和消亡。进程的内容主要包括以下三个部分:1、正...

2019-10-01 14:23:00 273

转载 Linux 下的解压缩命令

2019-09-30关键字:压缩、解压缩、分卷压缩、tar1、几种常用的压缩格式tar解包: tar xvf filename.tar打包: tar cvf filename.tar dirname/.tar.gz解压:tar -zxvf filename.tar.gz压缩:tar -zcvf filename.tar.gz d...

2019-09-30 16:14:00 183

转载 Android 中 ListView 的 setSelection 无效怎么办?

2019-09-30关键字:ListView 自动选中、ListView 动态改变选中项背景ListView 在手动选中选项的时候该选项是会高亮以示选中状态的。但有的时候我们往往会想在 ListView 一加载完成的时候即自动选中指定的某个选项,它虽然有提供一个 setSelection(int position) 方法,但遗憾的是该方法在 ListView 加载完成的...

2019-09-30 14:49:00 427

转载 Linux下的动态库与静态库

2019-09-25关键字:生成库、静态库引用、动态库引用在 C 开发中,“库”是一个经常听到的名词。所谓的库其实就是一个二进制文件。这个二进制文件的内容是可被其它C程序调用执行的函数。换句话说,库就是一组C代码的打包形式而已,打包是指将源代码以库的形式编译而生成的文件。不过即使它只是源代码的打包,它也仍然是有系统专有性的,即不同系统下编译出来的库并...

2019-09-25 23:02:00 137

转载 linux 下的文件IO基础

2019-09-23关键字:Linux 文件类型、Linux 文件IO、Linux 标准IO、C 语言的流文件的本质就是一组数据的集合。计算机在日常生活中几乎都是被应用于处理数据方面的。而在 linux 操作系统中,将一切都视为是 “文件”。1、常见文件类型Linux 中常见的文件类型及其标识符有以下七种:1、常规文件 : -2、目录文件 :...

2019-09-23 23:10:00 101

转载 如何实现 APK 的升级功能?

2019-09-18关键字:APK后台升级、APK自动升级最近在磕一个APK,要做一个热更新的功能。笔者以前从来没有做过类似的功能,但没吃过猪肉总是见过猪跑步的,想了一下,要实现一个纯粹的升级功能似乎也不难。1、升级原理一个纯粹的升级功能只需要三个模块。1、服务器;2、升级包与升级信息;3、具备升级功能的应用程序。1、服务器...

2019-09-18 11:58:00 331

转载 为什么编译时会报 Unsupported major.minor version 51.0 错误?

2019-09-11关键字:Android 大包编译搞 Android 系统开发的时候,常用的编译模块的命令无非就两条:mmmmm但有的时候却发现,以前用的好好的编译命令,突然就报错了。比如:Exception in thread "main" java.lang.UnsupportedClassVersionError: com/an...

2019-09-11 09:40:00 222

转载 在 APK 上实现一个 AIDL 跨进程通信

2019-08-19关键字:AIDL、跨进程通信、Service与AIDLLinux 操作系统为了安全性的原因,将不同应用的活动范围,或者说权限范围限定在一块专有的内存空间中。每个应用都有属于自己的专属内存领域,且无法访问其它应用的专属领域。但需求永远是丰富多变的,跨进程访问,或者说宏观一点,跨应用访问这个需求在日常项目开发中是常有的事。为了打破这种应用无法访问其它应用...

2019-08-19 17:54:00 207

转载 iptables 入门

2019-08-18关键字:iptables、Linux 防火墙iptables 是 Linux 上的一款防火墙配置软件。防火墙的基本概念防火墙是指工作在计算机设备系统边缘或网络设备边缘,能根据既定的规则对数据报文进行检测并做出相应处理的模块。这一模块既可以是软件也可以是硬件。iptables 是属于软件防火墙的范畴。在 cent os 中防火墙...

2019-08-18 23:08:00 147

转载 互联网服务器集群基本概念入门

2019-08-18关键字:Linux集群、集群服务器、负载均衡集群、高可用集群互联网的核心组件是各种服务站点。例如购物领域我们有淘宝、京东、拼多多等,出行领域我们有滴滴、首约、货拉拉等,通讯领域则有微信、QQ等。这些服务站点的背后是靠一台台性能出众的电脑来提供各种服务的。但随着互联网所覆盖的人群越来越广、在人们生活中的渗透越来越深,我们每时每刻所发起的服务请求都都是海...

2019-08-18 18:25:00 444

转载 重写了EditText的setText()后报String cannot be cast to android.text.Editable错误

2019-08-13关键字:自定义EditText、java.lang.ClassCastException: java.lang.String cannot be cast to android.text.Editable错误发生在继承自官方 EditText 实现自定义视图的场景下。当重写了父类中的public void setText(CharSequenc...

2019-08-13 11:16:00 661

转载 一种可以实时检测IP地址合法性的EditText输入框

2019-08-13关键字:EditText、自定义View、实时检测IP地址在做 APK 开发的时候,有时会遇到要输入IP地址的情况,但IP地址是有一定规则的,而 Android 官方又没有提供专用于输入IP地址的输入框。所以通常最简单节省时间的做法就是直接提供一个 EditText 供用户输入,然后等用户提交以后再去检查规则。还有些同学不愿意这么随便,他们可能自己开...

2019-08-13 10:32:00 417

转载 LVDS 屏幕 M215HGE-L21 在 rk3288 上的适配过程

2019-08-09关键字:LVDS点屏、rk3288 LVDS点屏、奇美LVDS屏幕点屏奇美M215HGE-L21 是一款 21.5 寸的分辨率达 1920*1080 的不可触摸的 LVDS 型显示屏。笔者这边的这块屏幕是一种嵌在一块触摸板里的。有两根线需要连接到 rk3288 上,一根是 LVDS 线,用于视频数据的传输,另一根是 USB 线,用于触摸信号...

2019-08-09 20:36:00 1304

转载 轻读一下 Android 应用开发中的 assets 目录

2019-08-07关键字:APK预置文件、预置配置文件、res,raw与assets的区别在Android的应用开发中,难免会遇到外部文件的预置需求。例如图像、音视频、配置文件、字体等等。对于图像,我们很容易会想到将它们存放在 res/drawable 目录或者是 res/mipmap 目录下。但对于其它类型的文件,就得另寻它法了。比较常见的可以保存任意类型...

2019-08-07 14:35:00 461

转载 XML与其在Android下的解析

2019-08-01关键字:Android解析XML、XML格式、XML含义本文简要介绍了 XML 以及它在 Android 下的解析方法。1、XML 简介XML 是一种用于传输和存储数据的数据格式。全称为 Extensible markup language。XML 是纯文本形式的,它的语法与格式要求很简单,因此在互联网领域有着非常广泛的应用。...

2019-08-01 19:15:00 94

转载 有关Linux的可执行程序

2019-07-30关键字:动态编译、静态编译、readelf引言Linux 的可执行程序可以分为两种:1、动态编译型;2、静态编译型。那么,二者之间有什么区别呢?动态编译动态编译是指程序源码在编译时,若有需要引用外部程序接口的,如外部库或外部可执行程序,只保存对应库的相关链接。后续该程序在运行时再去系统指定的库路径下寻找...

2019-07-30 16:39:00 168

转载 Android 下配置一个 /dev/fb0 节点出来

2019-07-24关键字:/dev/fb0 与 /dev/graphics/fb0fb 即 framebuffer 的简称,framebuffer 是 Linux 设备上的概念。从软件层面来理解,framebuffer 它就是一段内存空间。只不过这段内存空间里存的是一幅幅画面的帧数据而已,就是我们看到的画面的数据形式。所以我们可以简单地将 fb 理解成就是一...

2019-07-24 09:19:00 952

转载 Android下运行Linux可执行程序

2019-07-22关键字:/system/bin/sh: xxx: No such file or directory虽然说 Android 也是基于 Linux 的,但总归来说它们的编译链还是很有可能不一样的,这就导致编译出来的程序有可能不能通用,即使它们都是基于 Linux 的。而有些不能通用的根本原因在于程序运行时所依赖的环境不满足,比如常见的就是一些...

2019-07-22 10:20:00 531

转载 数据库的范式

2019-07-16关键字:1NF, 2NF, 3NF, BCNF, 4NF, 5NF、三范式前言数据库在设计过程中很重要的一个步骤就是根据我们所了解到的业务信息来进行“数据库建模”。数据库模型的好坏直接关系到我们后面的开发工作的难易程度,更重要的是会影响到系统上线后的运维工作的可操作性。数据库在建模过程中对库表范式的选型也很重要,我们必须...

2019-07-16 21:14:00 216

转载 rk3128 适配 USB 摄像头

2019-07-03关键字:摄像头适配、相机花屏、USB摄像头花屏1、前言rk3128 是一套定位于低成本 Android 商用开发板芯片的解决方案。它虽价格低廉、性能一般,但却依然该有的功能都支持。像摄像头适配在这款芯片中就是有一套完善的支持策略的。这款芯片支持传统手机形式的前置、后置类型摄像头,也支持市面上常见的USB摄像头。...

2019-07-03 15:13:00 634

转载 Android 如何添加不可被拦截的重启(reboot)机制

2019-06-27关键字:Android reboot1、前言今天这篇文章啊,来源于笔者手里的一个项目需求。话说笔者手里有一块运行着 Android 4.4 的开发板,这其中就有一个需求:当满足某种条件的时候就在后台悄悄摸地给系统来一个重启操作。诶,这就有意思了啊,由于是悄悄摸地重启,那当然不能给用户发现我们触发重启的方式,不然人家找个稍微懂点 A...

2019-06-27 21:14:00 301

转载 记一个有趣的生成格式化随机数列表的例子

2019-06-25关键字:二维数组列表、生成排列整齐的数组1、需求有的时候我们可能会遇到需要生成一大串印刷格式严谨的数组的需求。比如下图这种类型的虽然数据的排列是否具有格式化完全不会影响程序运行的正确性与效率性。但一个清爽的排版往往能给人带来非常良好的阅读体验,很多程序员在书写这种数组时都会留意一下数据的排版情况。数据量少的时候完全可以纯手...

2019-06-25 20:52:00 80

转载 Java 工程打包成库需要依赖其它外部库的打包方式

2019-06-14关键字:Java 打包、jar 打包依赖经常会有将 Java 工程打包成一个 jar 库的形式以供其它工程调用的需求。而我们需要被打包成 jar 库的工程中也难免会有需要依赖外部其它 jar 库的情况。比如,我们自己开发一个通过 HTTP 访问网络资源的工程,这个工程需要解析 XML 文件,我们通常不会自己从零开发 XML 解析的功能,网络上已经有很...

2019-06-14 13:30:00 575

转载 Android 在 kernel 中重启系统的接口

2019-06-14关键字:kernel 重启函数、kernel reboot、kernel restartAndroid 重启系统的方法可太多了。但大多数都需要我们在正常运行的 Android 之上才可以操作,甚至稍微偏底层一点的都需要我们的文件系统存在时才能使用。对于一些特定的场景,比如在 Android 的 kernel 进程里,想要直接发起一个重启命令要如何做呢...

2019-06-14 11:47:00 676

转载 rk3128 如何读取 flash id

2019-06-14关键字:mmc 唯一ID、flash 唯一识别码Android 开发板中的唯一识别码在 Android 的系统中,默认是会将 flash 的唯一识别码映射到文件系统中的。它的默认路径为/sys/bus/mmc/devices在这个路径下通常你的板子上有多少块存储芯片,就会有多少个文件。例如,笔者的开发板中它的文件结构就只有...

2019-06-14 11:36:00 607

转载 HDFS 的内存存储是什么?

2019-06-11关键字:Hadoop 内存存储、HDFS 存储结构、LAZY PERSIST我们的 HDFS 啊,它的定位就是一个文件系统,是用业存储文件的。那 HDFS 对于文件的存储方式有两种1、内存存储2、异构存储这篇文章,我们就来简单聊聊 HDFS 的 “内存存储”。首先,我们来了解一下到底什么是 “内存存储”?那还用说嘛,当...

2019-06-11 20:23:00 252

转载 rk Android 开发板按键适配

2019-06-10关键字:rk3128按键适配、rk Linux层按键适配、按键驱动笔者手里有一块运行着 Android4.4 的 rk3128 开发板。这两天接到一个要添加外部按键的需求,稍微研究了一番以后将过程记录下来。1、概述Android 默认都是支持添加外部按键功能的,预留了有一系列完善的接口流程。在笔者的整个适配过程中,可以说很...

2019-06-10 11:09:00 862

转载 Hadoop 的 RPC 通信实例

2019-06-05关键字:Hadoop、Hadoop RPC 实例、Hadoop RPC 调用、Hadoop 远程过程调用本篇文章简要介绍一下 RPC 的概念,并给出 Hadoop 中的一个 RPC 开发实例。RPC 的概念RPC 是一种通过网络从远程计算机上请求服务但不需要关心底层的网络通信细节的通信协议。简单来说,RPC 是一种通信协议...

2019-06-05 17:00:00 124

转载 将整型数字以二进制形式打印出来

2019-05-28关键字:整型转二进制分享一个 C 语言实现的将整型数字转换成二进制形式打印出来的代码。这里贴两种打印形式,第一种形式是打印 2 个字节长度的数字,且每 4 位就会空一个格出来以增加阅读性。而第二种形式的则是只打印 1 个字节。其实这两个函数都是笔者在工作中写的,各自的适用场景不同而已。下面先贴出这两个函数各自的执行结果,...

2019-05-28 17:32:00 680

转载 Android 4.4 通过源码进行 root 操作

2019-05-28关键字:rk root笔者手里有一块运行着 Android4.4 操作系统的 rk3128 开发板。刚好还没 root 的,摸索了一方,找到一个可以成功 root 的方式,特此记录一下。整个过程其实并没有网上说的这么复杂,就简单几步,照着做就好了。step 1预置外部 su 程序进系统。这个 su 程序已经作为附件上传到网上了...

2019-05-28 16:29:00 609

转载 Android4.4 找不到内部存储空间

2019-05-24关键字:rk3128 找不到内部存储空间、Android 提示 SD 卡正忙、Android 没有内部存储问题现象笔者的 Android 4.4 的 rk3128 开发板认不到内部存储空间。打开文件管理器检测不到存储,打开音乐播放器提示 SD 卡正忙或者 SD 卡损坏,使用浏览器下载文件也提示无法保存,在串口上也看不到传统 An...

2019-05-24 21:10:00 558

转载 极客时间《从零开始学大数据》学习总结

2019-05-22关键字:无花了一周多的时间学习了李智慧老师在极客时间上开设的《从零开始学习大数据》课程后感触良多,特意花了一天的时间写了一份总结,算是为我的这份课程的学习告个别。文章有点长,近 9000 字,被发表在简书上,就在这里贴出相关链接了。https://www.jianshu.com/p/f3efa2edead8...

2019-05-22 21:07:00 1063

转载 C 语言实现 unix 时间戳转换成时间字符串

2019-05-21关键字:时间字符串转换、unix时间戳转换、Android 下 C 语言时间戳转换Linux 下使用 C 语言将 unix 时间戳值转换为普通时间字符串是很方便的。但是在 Android 下却不是,主要 Linux 下用于转换时间戳值的相关头文件在 Android 下不存在引起的。所以在 Android 上,能在 Java 层完成时间值的转换就...

2019-05-21 21:04:00 425

转载 数据库设计中各种键的含义

2019-07-16关键字:数据库设计、表设计、主键、联合主键、候选键、自然键在数据库中“键”是一个很重要的概念。基本上只要我们谈论某张表,就一定离不开讨论它的各种键。而键的种类也不少,如果对各种键的概念分不清,在和他人讨论时可能就会不太和谐。因此,这篇文章主要记载一下各种键的名称及概念。常见的键有以下几种1、主键2、候选键3、可选键4、复合键5...

2019-05-17 10:09:00 2018

转载 Sqoop 快速入门

2019-05-12关键字:Sqoop是什么、Sqoop安装Sqoop 就是一个工具,对于工具,一般来说只要会用就够了。本篇文章旨在指导初次接触者快速了解并掌握 Sqoop ,具备将 Sqoop 应用到学习或生产环境中的能力。1、概述Sqoop 是一个在大数据领域里使用比较广泛的工具。它用于在 Hadoop 和关系型数据库中传送数据。Sq...

2019-05-12 13:38:00 223

转载 Flume 开发环境搭建与编写 Hello World 示例

2019-05-10关键字:Flume 环境搭建、Flume 如何安装、Flume 示例程序这是一篇很直的文章,一切围绕着快速构建开发环境为目的,不讲原理不讲人生也不讲理想,只求用最短的时间让您的 Flume 跑起来。1、下载与安装首先,下载没跑的,去官网下载,这里贴出传送门: Flume 官方下载 。其次,关于选择 Flume 版本的问题,对...

2019-05-10 23:29:00 152

转载 拒绝枯燥,轻松理解 Flume 架构

2019-05-09关键字:Flume 架构、Flume 轻松学、Flume 代理、source channels sink这篇文章不撸代码,纯聊天,聊聊 Flume 的架构。先弄懂架构,再去谈代码会轻松很多。1、Flume 是什么Flume 诞生于 2011 年,并于 2012 年在 Apache 中孵化成功。Flume 其实共可分...

2019-05-10 16:53:00 109

转载 Android 移除 BatteryService 服务

2019-05-08关键字:Android 系统裁剪、移除 BatteryServiceAndroid 的电池监测服务功能还是很成熟的,但并不是所有的设备都需要这么一个电池监测服务的。尤其是在我们的 Android 开发板内存资源比较紧张的时候,裁剪掉一些起不了作用的服务就显的尤为必要了。话不多说,直接干。1、SystemServer.javaAn...

2019-05-08 15:02:00 714

转载 使用 C 语言实现一个 HTTP GET 连接

2019-05-08关键字:HTTP 连接、C语言访问网络如果您比较有耐心,建议从头至尾读完这篇文章。如果您只想快速应用 C 语言的 HTTP GET 连接功能,可以直接跳到文末拷贝源代码去使用。1、HTTP 连接的流程HTTP 连接都是建立在 TCP 连接之上的。这里我们不讨论 TCP 的三次握手四次挥手过程。我们只单纯地来分析下一个 HTTP 连...

2019-05-08 14:15:00 553

转载 goodix gt911 在 Android 开发板上的适配流程

2019-05-08关键词:rk3128触摸屏适配、goodix gt911适配、goodixgt9xx触摸屏适配、gt9xx.c、rk平台触摸屏适配本篇文章记录了笔者在运行着 Android 4.4 的 rk3128 开发板上适配 goodix gt911 触摸屏的过程。1、GT911 触摸屏简介这款触摸屏是分辨率为 1024*600 的横向式电...

2019-05-08 11:46:00 1559

空空如也

空空如也

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

TA关注的人

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