自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多个独立的excel文件合并到一个excel文件的多个工作表Sheet中

上篇说到将excel中的一个工作表按照某列拆分成多个sheet工作表,那么如何将多个独立的excel文件合并到一个excel文件的多个工作表Sheet中呢,接下来就利用VBA工具来解决这个问题。

2022-03-26 09:54:14 17262 21

原创 excel中多个sheet工作表拆分成独立的excel文件

上篇说到将excel中的一个工作表按照某列拆分成多个sheet工作表,那么如何把excel中的多个sheet工作表拆分成一个一个独立的工作表呢?接下来就继续利用VBA工具来解决这个问题。第一步:打开要拆分的表格,如图所示:第二步:点击“开发工具—>查看代码”,如图所示:第三步:右击“WPS表格对象—>插入—>模块”命令,在新建的“模块1”中粘贴VBA代码,如图所示:具体代码如下所示:Private Sub 分拆工作表()Dim sht As WorksheetDim M

2022-03-23 11:45:32 42367 3

原创 将excel中的多个工作表sheet合成一个工作表

上篇说到将excel中的一个工作表按照某列拆分成多个sheet工作表,那么如何把excel中的多个工作表sheet合成一个工作表呢?接下来就继续利用VBA工具来解决这个问题。工作表合成前:工作表合成后:**第一步:**在文件中新建一个工作表sheet,用来存放合成后的数据,如图所示:第二步:点击“开发工具—>查看代码”命令,如图所示:第三步在sheet1(sheet2)中输入代码,如图所示:具体代码如下:Private Sub sheets()Application.Scree

2022-03-22 10:36:06 23922 2

原创 将excel中的一个工作表按照某列拆分成多个sheet工作表

如何将excel中的一个工作表按照某列拆分成多个sheet工作表呢?接下来就利用VBA工具来解决这个问题。拆分之前的工作表:拆分之后的工作表:操作步骤具体如下:第一步:打开需要拆分的表格文件:点击“开发工具—>查看代码”命令,如图所示:第二步:右击“WPS表格对象—>插入—>模块”命令,如何所示:第三步:在新建的“模块1”中粘贴VBA代码:如图所示:具体代码如下:Option ExplicitOption Base 1Sub 按指定列分组拆分数据()

2022-03-21 16:30:16 24831 23

原创 Android自定义实现侧滑菜单功能

侧滑菜单如同QQ往左侧滑动,可以删除对应的消息记录,如下图所示:1 布局实现item_content.xml<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="60d...

2019-01-15 15:00:53 1060

原创 Android自定义View实现快速索引(如微信好友列表,通讯录)

①最右侧的索引是用自定义View来实现的,通过onDraw方法将其描绘;②用pinyin4j-2.5.0.jar第三方架包取到每个名字的首字母,将汉字转化成拼音再取第一个字符;③ListView的adapte适配器。如下图所示:1 布局实现单个记录的实现,代码如下:item_main.xml<LinearLayout xmlns:android="http://schemas.an...

2019-01-14 14:34:36 2394 3

原创 iTOP4412开发板之Android5.1系统烧写

通过上篇文章讲述完毕后,本次就开始进行如何在iTOP4412开发板中烧写Android5.1系统。1 镜像组合① Uboot 镜像“u-boot-iTOP-4412.bin”②内核镜像“zImage”③ 文件系统“ramdisk-uboot.img”和“system.img”2 烧写流程将上述的四个镜像拷贝到“platform-tools”文件夹下,(注意:烧写工具"platform-...

2018-12-18 17:45:47 968

原创 iTOP4412开发板之Android5.1系统编译

搭建编译环境是基于 UbuntuKylin 14.04系统(实体机)操作,本文包括uboot编译、内核编译、Android5.1的下载与编译。1 编译环境准备工作(1) 交叉编译器配置在vim .bashrc文件,配置交叉编译工具:(注意:此“arm-2009q3.tar.bz2”工具是4412开发板所提供的,解压后放到配置文件路径即可,若没有arm文件目录,可自行创建 )打开bashrc...

2018-12-18 17:06:06 922

原创 Genymotion模拟器sd卡的路径位置

分析Genymotion模拟器sd卡外部存储数据的位置,以4.2.2、5.1、6.0、7.0这四个版本的模拟器为例,如图所示: 1、4.2.2模拟器 注意:s文件夹是笔者自己传的文件,如果所示: 模拟器加载出来的效果如下: 2、5.1模拟器 总结:以上两个版本的Genymotion模拟器的sdcard目录挂载在/mnt/shell/emulated/0目录中...

2018-07-23 20:38:04 2811

原创 Android坐标分析过程

Android中有两种坐标系,分别是Android坐标系和视图坐标系。 首先看一下屏幕区域划分 //获取状态栏高度Rect rect= new Rect();getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);int statusBarHeight = rectangle.top;//获取应用程序App区域宽...

2018-07-20 18:59:40 359

原创 Android系统6.0源代码编译过程分析(1)

1 绪论Android是一种基于 Linux 内核、自由开放源代码的操作系统, 由 Google 公司和开放手机联盟共同领导及开发, 主要使用于移动设备。首先就从系统源代码下载与编译过程分析开始。2 编译环境搭建准备工作(1) UbuntuKylin 16.04 LTS 链接内容 (2) Android 6.0_r1 (3) Open JDK 73 系统源码下载...

2018-07-16 13:11:21 2612 5

原创 Android6.0系统View事件分发

上篇文章《快速了解Android6.0系统触摸事件工作原理——InputManagerService》分析到dispatchTouchEvent()方法来做分发事件的处理,这个分发过程分为两种情况:(1)若目前的View是普通的View,就会调用View.java的dispatchTouchEvent()方法来处理。普通的View,比如TextView里面并没有实现dispatchTouchEve...

2018-07-15 16:30:28 407

原创 Android中使用Fragment与RadioGroup实现页面布局切换

现在的APP主页面界面设计,一般采用的是几个按钮加上不同的Fragment来切换页面,看起来层次很清晰,让用户一目了然,下面就用Fragment和RadioGroup来实现页面之间的切换,界面设计如下图所示: 代码如下: titlebar.xml(Titlebar标题栏)<?xml version="1.0" encoding="utf-8"?&a

2018-07-14 20:42:33 4125 6

原创 快速了解Android6.0系统触摸事件工作原理——InputManagerService

简介Android的事件处理是在Linux基础上完成的。事件的最开始是由硬件监听到,然后通过硬件分到Kernel,Kernel在分到框架层,最后最后框架层把事件分布到应用程序的UI中。下面就以触摸事件为例进行分析。 当有事件发生的时候,硬件首先监听到,然后InputDriver起作用,而框架层的EventHub类一直在InputDriver中读事件;当EventHub类读到事件之后,Even...

2018-07-14 15:47:53 3850

原创 Android6.0输入系统之EventHub源码分析

上篇文章《Android6.0输入系统之InputManagerService构成分析》 完成了IMS的创建,接着就沿着输入系统这条路继续往下走。 在EventHub的构造函数中,它通过INotify与Epoll机制建立起对设备点增删事件及可读状态的监听。INotify是Linux内核所提供的一种文件系统变化通知机制。它可以为应用程序监控文件系统的变化,如文件的新建、删除、读写等等。它有两个基本...

2018-07-10 20:18:45 2698

原创 Android6.0输入系统之InputManagerService构成分析

初始化 epoll 与 inotify /frameworks/base/services/java/com/android/server/SystemServer.javaprivate void startOtherServices() { ... Slog.i(TAG, "Input Manager"); //新建IMS对象 inputManager =...

2018-07-10 17:14:41 830

原创 Android中自定义封装ScrollView类,实现上拉、下拉功能

本篇文章,自定义ScrollView,完成上拉、下拉 ,是继承的父类是ViewGroup(ScrollView) 主要代码如下:public class MyScrollView extends ScrollView { private View childView; public MyScrollView(Context context) { super(...

2018-07-08 14:38:50 1384

原创 Android中使用MD5加密工具类加密数据

MD5属于单向加密算法,加密之后无法解密,主要用于客户端的用户密码加密。MD5加密串都是32位的十六进制字符串。public class MD5Utils { public static String MD5(String sourceStr) { String result = ""; try { MessageDigest m...

2018-07-08 13:34:10 765

原创 Android下Log工具的封装

为了开发调试的方面,程序员们经常在代码中添加日志打印,这样有利于发现bug,提高软件质量,但是调试信息过多特别容易泄露隐私信息,例如用户账号密码等等。从保密方面考虑,App在上线之前需要把多余的调试信息去掉,但上线模式不是简单的把一些调试代码删除就可以,而是要通过某一个按钮或者开关来控制是否显示调试信息,因为App上线后,还得更新、修改、重新发布上线,这个过程还得需要不断的调试。因此,通过封装Lo...

2018-07-08 13:06:24 412

原创 Android Handler实例分析过程

通过上篇文章《Android系统Message、Handler、Messagequeue、Looper之间关系的理论简介》 的概述,如果只有理论部分,读者看起来会比较的枯燥、乏味,因此本篇文章就通过一个上层应用的实例,来分析一下Handler用法。代码如下: 1、Message.java代码:public class Message { Handler targer; pub...

2018-07-08 10:06:30 589

原创 ubuntu16.04安装Source Insigh 3.5

Source Insight 是一个功能强劲的程序编辑器,内置对C/C++,Java和x86汇编语言程序的解析;有自己的动态数据库在你编程时提供有用的文本提示。使用Source Insight阅读和修改Android系统源码是个很好的工具,但是这个工具是 .exe 的文件,怎么在Linux上使用的,下面就以ubuntu16.04进行分析并安装使用。1 安装wine首先安装源su...

2018-07-07 09:58:06 2659

原创 Android系统6.0源代码编译过程分析(2)之编译SDK及内核

通过上篇文章《Android系统6.0源代码编译过程分析(1)》分析下载Android6.0系统源码和编译源码的过程,编译源码成功后运行模拟器,如图所示: 经过漫漫长路,终于把下载源码和编译源码搞定了,接下来,继续分析编译SDK和内核。1 编译SDK注意:编译SDK的时候会把之前编译完成的out文件夹下的部分内容删除重新编译,读者可以在编译SDK之前最好备份out文件夹,其实不备...

2018-07-06 20:21:37 2000

原创 Android系统Message、Handler、Messagequeue、Looper之间关系的理论简介

1 简介Handler获取当前线程中的Looper对象,Looper用来从存放Message的MessageQueue中取出Message(消息)的,Handler进行Message的分发和处理。2 概念介绍(1)Messagequeue(消息队列):用来存放通过Handler发送的消息,通常附属于某一个创建的线程,可以通过Looper.myQueue()得到当前线程的消息队列。 (...

2018-07-06 16:55:02 795

原创 Ubuntu 16.04 安装TPM-emulator

1 安装CMakesudo apt-get install cmake2 安装GNU MP library下载网址:链接内容,解压,然后进入该目录#configure#make#make check#make install下载网址:链接内容cd tpm-emulator-mastermkdir buildcd build#cmake ../#make#ma...

2018-07-06 09:16:41 2422

原创 Android消息机制之Message分析

在整个消息机制中,message又称为task,它封装了任务携带的信息和处理该任务的handler。尽管Message有public的默认构造方式,但是读者应该通过Message.obtain()来从消息池中获取空消息对象,以节约资源;除非消息池中没有空消息对象,就先new()消息。下面分析下Message类的属性结构部分:public final class Message implements...

2018-07-05 11:43:54 2372

空空如也

空空如也

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

TA关注的人

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