- 博客(62)
- 资源 (7)
- 收藏
- 关注
原创 Ubuntu解决Android monitor工具无法启动
monitor是Android开发中很好用的调试工具,用不了就很难受。解决办法apt list |grep openjdk查看到自己的电脑上装了openjdk11和openjdk8两个版本。觉得可能会导致冲突,于是选择把openjdk11卸了:sudo apt remove openjdk-11*然后进入Sdk/tools目录,执行./monitor,果然能用了!...
2018-10-11 17:01:44
2123
原创 RK3399配置笔记
1.adb shell 默认超级管理员在build/core/main.mk下将ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=1改成ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=0,然后执行make bootimage重新生成2.默认启用USB连接在device/rockchip/rk3399/init.b...
2018-09-15 12:45:35
5405
原创 【Java】大数相减,不用BigInteger
描述两个长度超出常规整形变量上限的大数相减,请避免使用各语言内置大数处理库,如 Java.math.BigInteger 等。输入有 N 行测试数据,每一行有两个代表整数的字符串 a 和 b,长度超过百位。规定 a>=b,a, b > 0。 测试结果可以用 linux 小工具 bc进行测试是否正确。输出返回表示结果整数的字符串。输入样例 1231231...
2018-09-04 10:48:31
1304
原创 编译Xposed
Xposed是Android平台上的有名的Hook工具,用它可以修改函数参数,函数返回值和类字段值等等,也可以用它来进行调试。Xposed有几个部分组成:修改过的android_art,这个项目是Xposed最核心的东西,它修改部分art代码,使Hook成为可能Xposed native部分,该部分主要提供给XposedBridge可调用api和调用修改过的android_art的api...
2018-08-20 18:40:31
2366
4
原创 Android Studio在生成apk的时候提示Unable to merge dex的解决方法
我们在引入库的时候总是会出现这样或者那样的问题,这让我心烦,不禁想要咆哮。在这里博主遇到了Unable to merge dex的错误,在Messages Gradle Build窗口错误提示如下图: 我们打开Gradle Console窗口 点击Run with --stacktrace,出现以下信息: 看上图,提示是v13包下某个类重复定义了。我们逆而行之,把完整v13包导入...
2018-08-10 16:27:57
1290
转载 Smali基础知识
Smali是什么?简介Smali是用于Dalvik(Android虚拟机)的反汇编程序实现,汇编工具(将Smali代码汇编为dex文件)为smali.jar,与之对应的baksmali.jar则是反汇编程序(下载地址),官方所说的基于Jasmin/dedexer语法,实际根不知道是什么鬼……Smali支持注解、调试信息、行数信息等基本Java的基本特性,可以说是很接近Java编译在JV...
2018-07-24 16:12:28
2048
原创 【大数据基础】统计某目录下的所有文本文件的单词出现频率
思路1.设置一个全局表来存放每一个出现过的单词和它的出现次数2.遍历所有文件,根据文件类型来判断是不是我们想要读取的文件3.读取文件内容4.把文件内容分割成一个个单词,并将文件中出现的单词,以及出现的次数存到全局表中5.打印出结果实现1.设置一个全局表来存放每一个出现过的单词和它的出现次数这里用TreeMap方便我们排序private static Map&lt...
2018-07-13 15:05:24
1459
原创 Android编译自己的程序到/system/bin
背景有时候我们想创建一个程序,放在系统中,供其他APP执行。我们知道,在生成system.img的时候,编译系统会将out/target/product/[product]/system/bin目录打包进去。所以,我们想办法让编译系统在编译的过程中,把我们的程序编译了,并把编译生成的二进制文件自动放到out/target/product/[product]/system/bin。做法...
2018-06-19 16:48:16
11794
4
原创 C语言memcpy函数的用法
介绍memcpy是memory copy的缩写,意为内存复制,在写C语言程序的时候,我们常常会用到它。它的函原型如下:void *memcpy(void *dest, const void *src, size_t n);它的功能是将从src的开始位置拷贝n个字节的数据到dest。例子1.将一个字符串数据复制到一块内存。#include <stdio.h&am
2018-06-13 11:05:26
130724
10
原创 Android frameworks层读写sdcard
场景和思路我们想在frameworks层读写sdcard,但是直接读写是不行的,提示权限不足。于是就想怎么把它所属的进程找出来,然后给这个进程加sdcard读写权限。做法android.os.Process.myPid()方法可以获取当前代码所在的进程的id。再通过ps|grep [pid]命令,我们可以知道frameworks中的代码所属system_server进程,而syst...
2018-06-08 11:11:48
5150
11
原创 从Android源码修改cpu信息
一直以为这种东西没法改呢,我还是太天真了。/proc/cpuinfo是个文件,只读,想直接写肯定不行的。它的输出逻辑在: kernel/[品牌]/[机型代号]/arch/[架构]/kernel/setup.c,修改static int c_show(struct seq_file *m, void *v)方法,用seq_printf方法,想输出啥都可以。特地下Linux内核源码下来看,不止And...
2018-05-10 14:33:48
6228
2
原创 Ubuntu将新分区挂载到/home
场景刚装Ubuntu系统的时候还很年轻,只给/home分配40G空间,没一阵子就发现home不够用了,装系统时刚好分出了一个80G的分区,于是就想把这个80G的这块挂载到/home操作1.查看分区信息sudo fdisk -l找到以下这一行/dev/nvme0n1p5 314576896 488394751 173817856 82.9G 7 H...
2018-04-27 10:07:46
4517
2
原创 自己动手编译Android源码
准备设备:红米3s设备代号:landAndroid版本:7.1.1源码提供:LineagePC配置: 系统:Ubuntu16.04 x64至少12G RAM至少80GB 剩余硬盘空间良好的网络环境1.下载并解压SDKsdk中包含fastboot和adb 下载 https://dl.google.com/android/repository/platform-...
2018-03-02 13:19:52
2035
转载 Android studio项目更换gradle版本
转自:http://blog.csdn.net/wb_001/article/details/76473403 现在项目中一直用的是gradle2.14.1版本,发现在项目中引入了.so文件后编译项目的时候会报40多个错误,但是项目依然能够正常运行,这让我很头疼。所以一直在寻找更新gradle版本的方法,发现好多方法都是不行的,现在将我的方法分享给大家:一、在你的studio的setting
2018-01-15 10:21:47
44440
1
原创 [Android]自己动手做个拼图游戏
目标在做这个游戏之前,我们先定一些小目标列出来,一个一个的解决,这样,一个小游戏就不知不觉的完成啦。我们的目标如下: 1. 游戏全屏,将图片拉伸成屏幕大小,并将其切成若干块。 2. 将拼图块随机打乱,并保证其能有解。 3. 在屏幕上留出一个空白块,当点空白块旁边的块,将这块移动到空白块。 4. 判断是否已经拼好。 实现目标1.将图片拉伸成屏幕大小,并将其切成若干块。想拉伸成屏幕大小,首先要
2017-10-20 12:49:17
16803
22
原创 Android上的C/C++语言开发工具--simpleC开源
介绍simpleC是Android上的C/C++语言开发工具,可以编辑并编译C/C++代码,并支持代码高亮显示,头文件和常用函数自动补全,代码自动缩进,编辑器文本大小缩放,快速注释/取消注释代码,编辑时撤退等功能。 编译器使用gcc编译器,词法分析器采用JFlex。该文本编辑器采用自定义View来绘制文本,高效绘制,并且可以轻易改成其他语言使用的文本编辑器,不仅如此,想要将文本编辑器扩展成更强
2017-10-03 19:56:11
7875
4
原创 Android在线游戏联机平台开源
背景当以前开始玩安卓机的时候,就发现Android可以玩以前在红白机玩的游戏,而且可以联机,感觉真的很神奇,加上自己对红白机有特殊的情感,当时就琢磨着什么时候把这个模拟器改成可以在线联机,后来可能是运气吧,恰好找到了模拟器的源代码,于是就开始看源码琢磨,发现好像代码并不是很复杂,底层的模拟器C,C++和汇编代码可以不懂,只需要了解如何在上层调用接口就好。
2017-09-06 12:53:56
2596
原创 Android实现用文字生成图片
效果图我们先来看看效果图,可以看到下图由各种颜色的”美”字拼接而成,形成了一张不一样的图片。 原理生成这种图片的原理很简单,但是当时看开源项目时愣是看不懂,因为没学过Python,但是仔细研究,终于能慢慢的理解该开源项目源码,并把它改写成Android平台的源代码。下面把这个算法的主要内容讲给大家,该算法大致原理如下: 1.根据原图片的大小和字体的大小创建一张空白图片 2.把原图片按字体的大小
2017-08-20 16:39:47
7950
1
原创 多种编程语言执行效率的比较
我们经常用不同种编程语言来完成我们的工作,但是它们的执行效率如何呢,我们通过递归的方式计算斐波那契数列的前40项和来比较。拿来进行比较的编程语言有:C,C#,Java,JavaScript,Python,Lua等。拭目以待吧
2017-07-17 18:29:40
29321
8
原创 Openfire插件开发实例--随机用户配对插件
Openfire支持插件开发,使得它的用处大大增加。前阵子,做一个匿名聊天软件,名字叫做“子曰”,再做这个项目之前,了解了许多关于Openfire的知识,得知他支持插件开发,并且能实现所需要的功能,所以最后就决定用它。这个匿名聊天软件最核心的功能就是陌生人配对了。服务器端实现也很简单,用户配对插件思路是这样的: 1. 如果客户端是发来请求配对用户的包并且用户队列中没有用户,将请求的用户的用户名...
2017-06-30 22:37:12
1153
原创 Qt文本高亮控件Qscitinlla的用法
背景平常要是叫我们自己写高亮的文本编辑器我们肯定会先想到用QTextEdit然后用正则表达式匹配指定位置着色,但是这样子写个简单的着色还好,要是复杂点,比如要对某个编程语言的各种关键字,字符串,注释等这些着色,用正则很麻烦不说,还容易出错,而且难以写出高效率着色的代码。所以,本文的主角Qscitinlla就闪亮登场了。Qscitinlla介绍Qscitinlla的前身是Scintilla,一个非常强大的文本编辑器控件,我们常用的Notepad++就是基于这个库开发的,官网:http://www.s
2017-04-30 23:25:19
8471
4
原创 使用NDK编译成多个平台的代码
1,在jni目录中的Application.mk中添加下面一行(没有Application.mk文件就创建一个)APP_ABI := all2,把NDK所在的路径加入环境变量3,在cmd窗口中转到jni源码路径执行ndk-build
2017-04-14 20:42:40
2387
原创 浅谈快速排序
快速排序的思想1.在数组中的低位到高位中取一个基准数(一般是直接取低位或者是高位,而不取低位和高位之间的位置),然后根据索引把数组里的元素依次与基准数来比较,比基准数小的扔一边,比基准数大的扔一边2.在数组左边执行第1步操作。3.在数组的右边执行第1步操作。我们可以看到,上面的流程是递归的套路。快速排序最坏的时间复杂度是:O(n2),平均时间复杂度是:O(n*log2n)#
2017-04-10 19:29:51
1044
原创 广度优先搜索解决八数码问题
求解八数码要懂得的知识1.康托展开,八数码在交换的过程中状态会改变,康托展开用于求出某一格局的状态数。2.逆序数,通过求初始格局和目标格局逆序数,然后在比较两者的逆序数的奇偶性是否相同,如果奇偶性相同,则可以从初始格局变到目标格局。否则,不可达。3.在八数码中一个位置的数与它相邻的上下左右的位置的数交换不会影响这个格局的逆序数的奇偶性。比如有以下格局:
2017-04-08 10:51:36
18815
1
原创 Java用广度优先搜索快速搜索文件
背景在开发的过程中,经常需要在文件系统里按某些条件搜索文件,比如音乐播放器扫描音乐,而搜索文件,大多人喜欢用递归的方式,而这也是最容易想到的方式。递归方式如果文件夹很深就容易造成栈溢出,而且不断的压栈退栈效率也会变低。我们常用的文件通常不会放在太深的文件夹,我们应该一层一层下去搜索,放在浅层目录先被搜索,如果实时显示结果,得到想要的结果即停止,用广度优先搜索的优势就更能体现出来了。|--E
2017-03-15 20:40:17
4423
原创 【openfire,smack使用总结】--Smack库的使用
Smack介绍Smack是XMPP协议的的实现库,Smack库易于使用,仅仅几行代码就能实现客户端连接,登陆,发送即时消息。但是由于使用XMPP协议,所以不适合用在高并发的场合。Smack的使用本文使用的是4.1.9版本的Smack库来演示,Smack的官方下载地址:http://www.igniterealtime.org/projects/smack/。下载下来后根据需求进行引
2017-03-09 19:01:59
8302
6
原创 Java实现简易爬虫--抓取酷安网用户头像
方法一:爬虫思路以酷安网用户粉丝较多的用户的个人中心为进口,获取该用户的全部粉丝的个人中心链接,用户头像链接和用户名,并分别放入队列。开启两个线程获取信息,一个线程获取队列中的用户的信息并放入队列,另一个线程负责从头像链接队列中取出链接并下载用户头像。爬虫分析用浏览器打开一个用户的粉丝列表(http://coolapk.com/u/[用户id]/contacts) 并查看源码
2017-03-08 17:08:26
3897
原创 【openfire,smack使用总结】--openfire插件开发
1.源码的配置到https://github.com/igniterealtime/Openfire/releases去下载openfire的源码,导入eclipse,openfire需要Ant工具进行编译,所以还要装上Ant。2.插件目录结构装好后,在eclipse的openfire源码目录的plugins目录下创建一个插件文件结构,文件结构见下图,注意图中圈起来的地方。Random
2017-03-04 18:29:59
2371
原创 【openfire,smack使用总结】--openfire环境搭建
从http://www.igniterealtime.org/projects/openfire/index.jsp,下载对应操作系统的openfire。博主使用的是Windows7,下载的是Windows版的Openfire,openfire版本号:4.1.1下载完成后,安装(注意:openfire最好不要安装在C盘,不然会出现配置无法生效的问题。),然后运行。出现以下界
2017-02-19 18:28:52
1554
原创 【图文】用Origin作多组红外数据对比图
本文链接:http://blog.csdn.net/e_one/article/details/53333588场景有时候我们需要多组红外光谱作在同一张图上,以做对比,类似于下图,我们该怎么做呢。 步骤打开OriginPro软件,博主用的8.6版本的。 依次点File->Import->CSV(根据自己的文件格式来选)。 按住Ctrl键,选中要导入的文件。点Add File(s)->OK.这里选择了两个文件。 点击后,出现导入确认框,直接点OK就可以了
2016-11-25 16:28:21
75449
2
原创 git的使用
介绍Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git的读音为/gɪt/。Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。git安装要想使用git首先要去下载git并安装上,git下载地址:https://git-scm.com/downloads,可以根据自己所使用的操作系统下载相应的git。git...
2016-11-10 12:25:10
664
原创 剑指Offer--从尾到头打印链表
题目描述输入一个链表,从尾到头打印链表每个节点的值。 输入描述:输入为链表的表头输出描述:输出为需要打印的“新链表”的表头 /*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {...
2016-10-27 15:51:41
526
原创 【Android】远程文件管理传输协议的设计
上次参加“软件杯”做了个文件传输软件,这个文件传输软件有管理远程文件/目录的功能,所以当时自己就编写了一个简单的文件管理传输协议。文件管理传输协议有比较成熟的协议,像ftp协议,它是用一端作为服务端,一端作为客户端来进行访问。本篇文章写的协议也与它类似。我们是两端都作为服务端,也都作为客户端来进行互相传输。相对于长连接,这种方式更加方便,简单。本文讲的代码是Android平台的,其他平台也可以参考
2016-08-30 10:18:27
2874
原创 蓝桥杯-李白打酒
话说大诗人李白,一生好饮。幸好他从不开车。 一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱: 无事街上走,提壶去打酒。 逢店加一倍,遇花喝一斗。 这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。 请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是...
2016-08-29 16:57:45
962
原创 参加第五届“软件杯”记录
今年5月底在班群里无意中发现一份关于第五届“软件杯”的报名通知文件,很感兴趣,就去社团群里问有没有想要组队参加,结果有两个师弟愿意一起,一起讨论了一番,决定做“移动端与其他端快速传递文件”的题目,这个题目估计是所有题目里最简单的题目了,以我们的能力,也只能做这个题目。经过老师的指导,也知道怎么做了,但是后面做起来还是困难重重,我们连socket连接都不是很熟,更别说自定义协议了,所以对于这个项目几
2016-08-27 19:14:23
3371
8
原创 【Android】自己动手做个扫雷游戏
本文链接:http://blog.csdn.net/e_one/article/details/520889831. 游戏规则扫雷是玩法极其简单的小游戏,点击玩家认为不存在雷的区域,标记出全部地雷所在的区域,即可获得胜利。当点击不包含雷的块的时候,可能它底下存在一个数,也可能是一个空白块。当点击中有数字的块时,游戏会展现当前点击块所包含的数字。当点击空白块时,地图会展开,形成一个大小和形...
2016-08-01 20:59:29
24981
20
原创 Makefile的实例讲解
makefile,顾名思义,它的作用是来生成文件的。makefile可以对源代码进行管理,可以完成编译,链接,执行等阶段。当编写完成后,在终端执行make就可以执行makefile文件中的行为,一键完成编译,链接,执行等操作。是不是很方便。makefile有自己的文件规则,它可以定义和使用变量,他也有自己的赋值语句,可以使用函数,可以执行shell命令。windows下的好多编译器都帮我们写好了m
2016-07-15 10:17:22
2448
原创 2015蓝桥杯决赛Java A组 第四题--穿越雷区
//标题:穿越雷区////X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废。//某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征),怎样走才能路径最短?////已知的地图是一个方阵,上面用字母标出了A,B区,其它区都标了正号或负号分别表示正负能量辐射区。//例如://A + - + -//- + - - +//-...
2016-07-04 13:40:31
2541
原创 【Android】在图片上画其他内容的方法
步骤如下:1。创建一个位图对象,即得到想要在上面画字的图片2。给画布对象设置第一步得到的位图。3。在画布上绘制内容,比如:字,各种形状,位图等等,此时在画布上绘图,相当于在位图上画。4。现在的位图对象就是上面有新内容的位图对象。随便你怎么操作了(保存,显示都可以)。博主写个例子,从文件生成得到一个位图对象,并且在上面绘制文字,最后再用ImageView显示Bitmap的绘制结果
2016-07-03 14:42:28
3891
原创 2015蓝桥杯决赛Java A组 第三题--显示二叉树
标题:显示二叉树排序二叉树的特征是:某个节点的左子树的所有节点值都不大于本节点值。某个节点的右子树的所有节点值都不小于本节点值。为了能形象地观察二叉树的建立过程,小明写了一段程序来显示出二叉树的结构来。class BiTree{ private int v; private BiTree l; private BiTree r; public BiTree(int
2016-07-03 13:59:07
525
美术作品管理系统
2018-06-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人