自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MC 的技术空间

主页:http://www.jianshu.com/users/a0d978b30696/latest_articles

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

原创 Android 图像处理软件

原文出处:http://blog.csdn.net/mc_hust/article/details/43708163在机器视觉实验室呆了有一年半时间了,但由于自己“任性”。一直以来学习的内容都是自己来安排,我还是坚持认为没有最好和最简单的技术,只有自己喜欢的技术。不过说起来还是会觉得惭愧,经常听到师兄们谈论图像处理各种算法,可是一直到此软件诞生之前对机器视觉的知识可以说一概不知。自己研究的主要是An

2015-02-10 20:53:15 2832 9

原创 Android个性闹钟——摇摇醒

花了一周时间突发奇想写了一个个性闹钟应用,名叫"摇摇醒"。顾名思义,当预设的闹钟时间到时,闹钟响起,并且等待用户摇晃手机。直到一定的阈值之后才能停下,经过不断的测试调整,基本上用户在关闭闹钟的时候能够保证清醒状态。可以为广大的起床困难户解决实际问题~当然应用中也有许多不足之处,我也会继续修改,同时及时在GITHUB上更新源代码也希望大家一起帮助整改。下面介绍一下整个应用的设计思路。应用中需要解

2014-10-30 22:34:11 3074 4

原创 NRF24L01 无线通信模块使用方法

昨天登录百度账号,无意间发现漏看了好多朋友的私信,其中不少是找我探讨关于NRF2401模块的。从12年到14年的信件都有(平时很少注意系统提示信息。。。)。hust-MC.jpg实在不好意思,也许很多朋友已经搞定这个模块了,也许有的还在研究。用了半天的时间找出了相关资料并整理好,在这里统一共享给大家,希望能够帮到大家。NRF24L01是在2012年全国电子设计大赛中使用过的一款

2014-09-22 11:10:27 40824 227

原创 Android即时通信软件设计(一)(网络通信)

——客户机、服务器连接通信最近刚做完一个基于Android的即时通信的项目工程,主要完成类似于QQ群的功能。项目涉及的知识面比较广,都是在网络通信上很实用的技术,非常适合初学者学习。其中也是遇到了各种错误、异常。在解决的过程中自己也收获了不少。在此分几个部分简述一下我的调试过程,也和大家分享一下我的收获,希望对大家有帮助。所要了解的主要知识点:TCP/IP网络协议文件IO流二进制I

2014-06-29 20:27:03 2188 2

原创 下载Android源代码错误汇总分析

配置下载Android源代码的过程及问题解决        最近在学习Android底层框架,今天打算研究一下Android源代码,源码的下载过程可没有想像的顺利。主要原因是网上的很多资料都是多年以前的,而一些网站都发生了变更,所以域名也会失效。OK,废话少说,我把遇到的各种问题和大家分享一下,希望大家能对号入座,避免浪费不必要的时间~        以下是我按照正常下载过程总结出的步骤,

2014-06-22 10:51:43 8946 5

原创 10 网格布局——GridLayout

今天要学的布局和上一节的 TableLayout 很类似,是在 Android 4.0 版本引入的布局方式。GridLayout 很有意思,自从引入之后在 Android 开发圈有以下特点:大部分的开发者可能都不知道有这个布局方式的存在有些开发者虽然知道,但是很多时候不会去使用这个布局方式很少的开发者会花时间研究这个布局方式,也不会灵活的使用之所以会花一个章节来讲,是希望大家能够引起重视1. GridLayout 的特性顾名思义 GridLayout 可以帮助你完成各式各样的网格形式的布局,

2021-09-05 19:29:05 1706

原创 9 表格布局——TableLayout

学完了 Android 两个经典布局,是不是觉得已经可以应对大多数场景了?我记得当我学完 LinearLayout 和 RelativeLayout 之后,我觉得 UI 布局已经可以出师了,在本人从事了多年的 Android 研究之后,可以很负责任的告诉你,的确可以出师了。大多数场景都可以通过这两个布局方式组合出来,不过光靠这两招出师可能会走不少弯路,因为 Google 还为我们提供了很多实用的 Layout,比如今天要学的 TableLayout,它是一种表格样式,在很多 App 里面都会用到。当然你完全

2021-09-01 15:16:19 761

原创 8 相对布局——RelativeLayout

在上一节中我们讲到了 LinearLayout,这也是大家学到的第一个布局方式。它支持将多个 View 通过线性的方式(水平或垂直)组合起来,其中最实用的就是 weight 属性,用好 weight 可以让你的线性布局更灵活美观。然而,在上一节的例子中我们发现,如果需要在多个方向上进行布局,就要嵌套多个 LinearLayout,可以想象如果我们的 UI 足够复杂,那么从工作量和性能上都将是一场噩梦。所以这里要引出另一种布局方式——RelativeLayout(相对布局),很多时候需要嵌套多个 Linear

2021-08-24 12:40:56 1281

原创 7 线性布局——LinearLayout

在上一节中,我们讲到了所有的 Layout 都是从 ViewGroup 继承而来,它可以包含若干 View 并按照指定的规则将这个 View 摆放到屏幕上。那么接下来的章节我们就来学习一下 Android 的 UI 布局,Android 原生有六大布局,分别是: LinearLayout(线性布局)、RelativeLayout(相对布局)、TableLayout(表格布局)、FrameLayout(帧布局)、AbsoluteLayout(绝对布局)、GridLayout(网格布局),我们从最简单实用的一个

2021-08-15 19:01:55 2158

原创 6 Android 的 UI 根基——View 与 ViewGroup

好了,到这里要恭喜你正式进入 Android 基础的学习,在后面的章节会陆续出现很多 Android 原生 API,在学习之前向大家推荐 Google 官方文档,里面有很全的 API 功能描述、使用说明及使用示例。当然,如果英文原版大家上不去,可以访问中文站点:Google官方中文文档(无需VPN),英语盲不要高兴的太早,说是中文文档,但其实内容几乎都是直接 copy 的英文。不过还是建议大家在学习过程中多多查阅官方文档。基础知识将从 Android UI(User Interface)开始,因为 UI

2021-08-11 15:25:57 178

原创 5 Android程序签名打包

在上一章,我们创建了自己的 Android 工程,并成功的在模拟器中运行起来。同时提到,工程目录中有一个 bin 目录,运行之后我们可以在此目录下找到我们的apk。那么不难想到,我们在点“Run”之后,系统会编译我们的代码,并结合配置文件打出一个 apk。众所周知 apk 是 Android 系统的安装包,在我们编写完代码,打包成apk之后,就可以将 apk 发布到应用市场,用户下载 apk 后就可以安装运行了。这一切看似简单但暗藏玄机,我们的 apk 一旦到了纷繁复杂的市场,就需要考虑很多问题。比如如何

2021-08-10 11:36:08 263

原创 4 Android工程解析及使用

在上一章中已经搭建好了 Android 开发环境,本章我们将一起通过 Eclipse 创建我们的第一个 Android App。1. 创建 Android 工程首先打开 Eclipse,在菜单栏依次选择“New” -> “Android App Project”。如果是第一次创建,可能没有“Android App Project”,那么可以选择“Other”->“Android”。主要有三个参数需要我们设置:应用名: 即我们App的名字,也是最终会显示在设备桌面上的名称;工程名: 项目

2021-07-26 10:02:14 148

原创 Flutter AOP 插桩项目实战

Flutter AOP 插桩项目实战项目背景项目简介系列文章目录项目背景Flutter依靠在跨平台方案的完美表现,深得终端开发者的心,然而在当下Flutter飞速迭代的同时,Flutter 的性能统计及用户行为统计的需求也随之提高。这几年在 Android 上有多种很成熟的插桩方式帮助我们完成这些任务,而在 Flutter 上还正处于探索阶段,本系列文章将会和大家一起探讨 Flutter 代码插桩的技术原理和基本应用,从0开始实现一个基于 Flutter 插桩的用户行为跟踪框架。项目简介Respec

2021-07-25 21:33:20 742

原创 3 Genymotion的安装与使用

在上一章中我们在 Eclipse 当中创建了 AVD,由于性能差只适合测试小型 App。这里将推荐一款性能更佳的 Android 模拟器—— Genymotion。首先我们看看 Genymotion 好在哪里。1. Genymotion 优势Genymotion 相对于内置模拟器有如下优势:运行速度快、画面流畅,性能甚至优于部分真机;支持拖拽安装APK;支持 OpenGL 3D加速,可以流畅玩大型3D游戏支持多种虚拟传感器,如电池状态、GPS、NFC、重力加速器等模拟,支持摄像头、蓝牙等设备

2021-07-25 17:41:41 2058 4

原创 2 Android开发环境搭建

在学习 Android 应用开发之前,我们先要完成环境的搭建,它将帮助我们将 Java 代码编译打包生成最终的 Android 安装包。本教程在 Mac 下完成安装,Windows 和 Linux 步骤类似,不同之处会着重区分。1. 文件清单Java SE Development Kit 8u241: 后文称 JDK。Java运行环境,使用 JDK 5 以上版本即可,本教程采用 JDK 8 作为开发环境。Android SDK : 后文称 SDK。Android 开发工具包,内含我们开发中使用的常用

2021-07-25 17:33:05 306

原创 1 Android 系统背景及结构概述

Android 系统背景及结构概述1. Android的历史Android一词的本意指“人形机器人”,安迪•鲁宾 (Andy Rubin) 在2003年以此名创办了Android公司并开始召集团队研发Android系统。后于 2005 年被 Google 收购,安迪•鲁宾随后任Google 工程部副总裁,继续负责Android项目的研发工作。安卓系统(Android)是一款基于Linux内核的自由开源的操作系统,主要使用于移动设备,如智能手机和平板电脑。 Google 在 2007 年 11 月 5

2021-07-25 17:31:01 594 1

原创 MP3歌词的同步与拖拽设计

原文地址:http://blog.csdn.net/mc_hust/article/details/51534901自从准备毕业论文开始,就没写过博客了,关注量也明显呈下滑趋势(虽然本来就少)。到现在已经入职一个多月了,抽空把之前做的一个项目整理一下,算是毕业后的第一篇博客吧。关于Mp3播放器,网上有各种实现方法,但是对于歌词的同步以及滑动更改播放进度的讲解却少之又少,所以我这里重点放在歌词的设计上

2016-05-30 00:06:31 6117 43

原创 Android真正的静默安装

原文出处:http://write.blog.csdn.net/mdeditor#!postId=50609068关于Android应用程序的静默安装,很早以前我就做过一些了解,网上大多数给出的方案都是有严苛的要求:比如要获取root权限、或者是针对特殊的rom,甚至要自己刷机,这些方法即使能够达到目的但是看起来也不那么诱人,对于黑客技术而言几乎毫无用处。最近无意中看到了潭州教育的一个视频课程讲到静

2016-01-29 20:01:53 6658 32

转载 浅谈android线程池

线程池的基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。比如:一个应用要和网络打交道,有很多步骤需要访问网络,为了不阻塞主线程,每个步骤都创建个线程,在线程中和网络交互,用线程池就变的简单,线程池是对线程的一

2015-12-29 09:06:02 790

原创 难忘的面试周——百度校招面经

如果说准备招聘的复习过程如同准备考研一样单调而紧张,那笔试之后的面试过程就如没考上寻求调剂一般煎熬而痛苦。也许很多朋友没有体会过以上过程,还不能理解如何紧张如何煎熬。那么下面我把我一个月的紧张和一周的煎熬分享给大家,文章末尾会有一片android面试大全,这些只是我个人的经历,希望能让大家有所借鉴。一个月的复习首先我是做移动客户端的,简单说就是Android、Java等方向的编程。点击可以查看另一篇

2015-11-08 20:28:11 3645 3

原创 Android工程师面试题大全

结束了难熬的校招,现在终于可以安安静静的做做项目看看书写写论文了。下面对这段时间面试遇到的问题并结合网上各位的大神秒下的面试题做个总结,本文会持续更新,希望能在面试中助各位一臂之力!Java基础:1、内存泄露的原因:资源对象没关闭。 如Cursor、File等资源。他们会在finalize中关闭,但这样效率太低。容易造成内存泄露。 SQLiteCursor,当数据量大的时候容易泄露使用Ada

2015-10-30 22:14:10 7489 5

原创 比spinner更轻量的下拉菜单——DropDownList控件

相信大家在Android应用程序中经常会用到下拉菜单,而Android源码中自带的spinner控件可以满足大多时候的需求。那么这里所说的DropDownList与之有什么不同,又轻量在哪里呢?下面我们来看看两者的差别。(点击下载DropDownList library)最近我在用spinner的时候发现了一个问题。我希望通过spinner来控制一个viewPager的切换,同时,当滑动viewPa

2015-10-23 21:43:15 2510 1

转载 Java多态性的理解

看过一些关于Java多态性的文章,参考了很多人的理解,加入了一些自己的看法,整理出来供大家参考,不一定完全正确,欢迎大家批评指正。(一)相关类class A ...{           public String show(D obj)...{                  return ("A and D");           }            public Str

2015-09-15 13:35:33 1310

转载 深入理解java异常处理机制

1. 引子       try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。

2015-09-07 19:54:59 1195 2

转载 Integer.valueOf(String) 方法之惑

有个仁兄在 StackOverflow 上发起了一个问题,是这么问的:“ 我被下面的代码搞晕了,为什么它们会返回不同的值?”123System.out.println(Integer.valueOf("127")==Integer.valueOf("127"));System.out.println(Integer

2015-07-30 12:53:02 935

原创 《Android第一行代码》笔记

学习Android开发差不多有两年时间了,期间也做了大大小小的一些项目。近来抽出闲暇想把Android基础强化一下,之前在网上看到了郭霖郭大神的几篇博客,从中受益不少。于是花了近一周时间看完了郭神的一本Android教材——《Android第一行代码》。这本书相比其他教材个人感觉更为基础,内容很实用。看完之后我也有一些收获,学到了一些可以很好的运用到实际中的Android小技巧,下面从中选出我认为很

2015-06-03 22:05:17 2326 13

转载 Android action使用大全

1.Intent的用法:(1)Action跳转1、 使用Action跳转,当程序AndroidManifest.xml中某一个 Activity的IntentFilter定义了包含Action,如果恰好与目标Action匹配,且其IntentFilter中没有定义其它的Type或Category过滤条件,那么就正好匹配了。如果手机中有两个以上的Action程序匹配,那么就会弹出一个对话可框来提示说明

2015-06-01 10:32:48 8730

原创 Java与C/C++网络通信时的数据转换

最近做了一款Android应用,需要和PC端通过socket传递数据。Java Socket的接收与发送首先我们会建立一个socket连接,然后从中获取InputStream和OutputStream。在接收的时候我是用一个DataInputStream对Socket的InputStream进行包装,便于后面接收不同大小的数据类型。在发送时先通过DataOutputStream()对OutputStream进行

2015-05-13 17:01:33 1736

原创 Android“上拉刷新/下拉加载”与“侧滑菜单”的兼容

在Android系统中,“上拉刷新/下拉加载更多”和“侧滑菜单”都是非常常用的操作界面,二者都比较容易,网上也有许多牛人做好的库可以直接使用。可是很少有讲解如何让两者并存的方法,前不久在一个项目中需要在已有侧滑菜单的应用中,对其中一个菜单项加入上拉/下拉菜单。由于都要捕捉触摸事件,这两者之间可能会产生一些冲突。这里记录一下我的解决方案和步骤,也希望能够为遇到同样问题的朋友们提供一些思路。1、侧滑菜单

2015-04-27 22:38:41 1850 2

原创 Android系统如何运行动态编译的程序

android系统底层使用了linux的内核,但在文件系统上与linux有所差异。我们可以通过谷歌提供的ADB工具进入android系统的linux命令终端。但是不能执行我们在PC上通过arm-linux-gcc等交叉编译器动态编译出来的应用程序,比如如下指令:arm-linux-gcc mc.c -o mc然后用adb push将可执行程序复制到android系统/data/local中,接着改变

2015-03-22 21:58:58 1684

原创 完整Android CAN总线程序开发

最近在研究一块TI公司的TMDEVM-AM3358开发板,这是一款硬件资源相当丰富并且性能非常好的工业评估板,我重点需要用到板上的网卡、串口以及CAN总线。众所周知,在android这样一款风靡全球的移动端操作系统内部,对于网卡的支持已经伴随这一系统本身的发展而相当完善。然而,串口线已经逐步淡出我们的视野,但是由于简单易用,在很多时刻依然派得上用场。其中最少见的应该就是CAN总线了,所以在调试CAN

2015-03-22 21:30:22 6394

转载 面试经历(技术类)

前言:从9月10号开始到现在快两个月了,两个多月中,我经历数次面试和笔试,在经历这些的同时积累了不少的经验,也学到了不少东西,在此把它记录下来,算是和一起找工作中的同学一起共勉吧。我是本校的学生,专业是机械制造及其自动化,找工作的主要目标是计算机软件类和机械制造方向的国内的企业,所以意向去外企的同学就不必浪费时间看这些面经啦,想去国内IT企业的同学可以继续看下去。本贴中我把最近的腾讯面

2015-03-19 22:28:47 1316

原创 新年之夜,大地春晖

时间:15年2月18号地点:客厅电视机前环境:独看春晚在这样一个充满喜气,举国欢庆的时刻。我独自在电视机前看着春晚,上着网。在片刻的喧哗之中寻找属于自己的宁静。几小时前,一家四人还团做在沙发上等待春晚开始,现在剩偶一人,我在想,明年的此刻会又如何呢。最近每年这时候差不多都在考虑老姐的大事,眼前也要解决了,反而有些伤感。或许明年的今天家里只能有三个人团坐过年了,也或许还是四个,更或许会是五个。。无论如

2015-02-19 01:55:48 1681

原创 Linux驱动编程之信号机制

编写Linux驱动的过程中,需要考虑与应用程序交互的情况。当设备驱动完成某项任务或者达到某种状态的时候(如设备文件可以写入或读取),此时可以让驱动程序主动通知应用程序进行相应的处理(个人感觉类似于Android应用程序中的广播)。这种在Linux内核中使用的“广播”就是本文要详细介绍的“信号”。1. Linux信号类型使用信号进行进程间通信(IPC)是LInux系统的重要通信机制。在Lin

2015-01-25 21:24:29 1427

原创 210开发板Android系统串口程序

最近由于项目需要,花了两天时间在Android平台下编写了一个串口助手软件。硬件平台是友善之臂的tiny210开发板。起初的想法是首先基于Linux驱动做一些修改,然后自行编写HAL层代码,最后编写Android应用程序调用HAL Stub来实现和串口通信。后来在网上看到友善之臂为Android系统操作硬件资源专门开发了一个库文件:libfriendlyarm-hardware.so,通过它我们可

2014-12-19 21:12:18 1822 5

转载 培养程序员的人脉

大家都知道我们程序员是一个长时间在电脑旁边的人类,我们的业余时间不多,周六日可能还加班。但是我们一定要抽出时间来维护自己的人脉管理。不是有那么一话嘛,天时 地利 人和 当这三个在一起跳舞时,你就成功了!下面我给大家说一下怎么维护自己的人脉。主动越主动,对自己越有利。当我们有了一定的能力,需要结交同行业或者非行业的一些精英的时候,为什么有的人毫无障碍,而有的人感觉寸步难行?感到困难的人,

2014-12-07 19:25:20 1209

转载 Android开发规范

一、Android 编码规范1.java 代码中不出现中文,最多注释中可以出现中文2.局部变量命名、静态成员变量命名只能包含字母,单词首字母除第一个外,都为大写,其他字母都为小写3.常量命名只能包含字母和_,字母全部大写,单词之间用_隔开4.layout中的id命名命名模式为:view缩写_模块名称_view的逻辑名称view的缩写详情如下LayoutView:

2014-11-28 11:08:31 933

转载 LDD环形缓冲区代码解读

首先通过自定义数据结构,对缓冲区做几个基本的指针和参数进行定义:char * buffer_start, *buffer_end                 指向buffer起始端和结束端的指针char *wp ,*rp                                                  数据的读写指针int buffersize

2014-11-25 21:47:45 1023

原创 Linux错误码整理

查看错误代码errno是调试程序的一个重要方法。当linuc Capi函数发生异常时,一般会将errno变量(需includeerrno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。在实际编程中用这一招解决了不少原本看来莫名其妙的问题。比较麻烦的是每次都要去linux源代码里面查找错误代码的含义,现在把它贴出来,以后需要查时就来这里看了。1-34号

2014-11-13 21:52:18 2116 1

原创 Java 正则表达式学习笔记

正则表达式是一种强大的字符串处理工具,平时经常会用到。这里完整的做一次总结,以便查阅记忆。1. 字符串中的正则表达式使用正则表达式可以对字符串进行查找、提取、分割、替换等操作。String类当中提供了如下几个特殊方法:boolean matches(String regex):判断该字符串是否匹配指定的正则表达式。String replaceAll(String regex, St

2014-10-20 22:12:44 1208

空空如也

空空如也

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

TA关注的人

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