做c++开发很多年了,从早年windows vc6.0 做客户端程序开发,这些年后台流媒体服务器后台开发。随着时代变迁,移动互联逐渐兴起,直到现在,移动互联的风头早已盖过传统互联网应用,因而传统后台开发似乎日渐式微。如今要找工作的话,android,IOS等开发的职位不但数量远远多于c++,而且报酬也要比c++高很多,如果在移动开发上做过三年以上,年薪25W以上的机会多的是,但是对于c++ 要达到这个数,工作经验一般多得六七年,同时,技术要求比做移动互联网要高很多。因此,一直寻思着,要转行到移动开发,但由于对c++感情较深,转行的实施一直不温不火,直到有一次看到滴滴招聘,招三年经验的android开发,年薪可开到50W, 这一刺激让我彻底下定决心转行,毕竟做人没必要和钱过不去嘛。

为了搞清楚,好公司在招android开发时,一般需要怎样的条件,我在拉钩上转了一圈,将年薪20W以上的android开发要求总结了一下:

1.  有android开发3年以上的经验。

2.  精通java ,c++, 有扎实的算法和数据结构功底。

3.  精通软件架构,良好的代码习惯。

4.  精通android UI 开发, 多线程,以及网络协议原理。

经过一段时间的研究和实践,觉得自己似乎已掌握了android开发的技术,但问题在于,我多年来是做c++的,项目经验也是c++为主,怎样让市场认可我的android开发能力呢?想来想去,得到的办法是我自个做一个满足上述条件的app, 我想,没有比拿出作品来证明自己能力的更好办法了。该改程序代码的下载地址为:

http://download.csdn.net/detail/tyler_download/9273255

这个App可以说麻雀虽小,五脏具全,基本上能较好的显示出以上几点要求。其实它就是beyond comparer的安卓版,当用户选定两篇文本后,app会将文本内容的异同比较出来。

首先看看app的启动界面:

界面的结构简单,上头是两个textview控件,下方是一个按钮工具栏,在textview控件长按住,会调用出文件选择界面,让用户选择要比对的文件,由于android本身没有自带的文件选择框,所以这个界面也是自己开发的(借鉴了网上一位朋友的设计,但在代码设计上做了一些改进):

当用户分别通过长按上下textview, 调出文本选择框,并选择相应文本后,文本的内容会显示在textview中,同时,程序会调用文本比对算法找出两个文本的最大共同子串,文本比对算法用的是Hirschberg博士改进的lcs算法,算法将原lcs算法的存储复杂度将O(n^2)改进成O(n), 在后续文章,我们会研究该算法。当比对后,文本中差异的部分会用红色高亮,相同的部分以黑色字体显示:

在底部工具栏按钮,点击向下,或向上箭头会依次将文本相对应的不同的地方,以背景高亮显示:

程序功能虽然简单,但我感觉比较实用,同时该app基本上满足了上述的几点要求,既有界面的设计,又有算法的设计实现,同时在文本选择框的设计中使用到了一些设计模式的技术,这点能满足“ 精通软件架构,良好的代码习惯“这一要求吧,最重要的,当人家问我拿出作品时展示时,我有东西拿的出来。后续我会把代码上传到csdn,希望籍此能和各位朋友探讨移动开发的技术,如果能得到大牛们的指点,那小的真是感激不尽了!

一个android 文本比对App的实现(一)相关推荐

  1. 一个android文本比对app的实现(四)--Hirschberg文本比对算法

    本章所描述的是程序的核心,文本比对算法的实现,文本比对本质上就是字符串的比对,在两个字符串中,找到他们的最长相同子串,例如: S1 = abcdefg,  S2 = afhctdog; 那么两个字符串 ...

  2. Android 文本比较 APP,一个android文本比对APP的实现(三)-设计模式在文件选择模块中的运用...

    用惯了windows, 当发觉android没有原生的文件管理器或类似模块的时候,感觉非常不合理.android sdk似乎也没有提供类似的组件以让程序调用,没办法,也就只好自己动手做.当然,我也不是 ...

  3. 一个Android音频文本同步的英文有声读物App的开发过程

    转发: http://segmentfault.com/a/1190000003498111 "新概念英语"."可可英语"."亚马逊的audible有 ...

  4. Android 文本阅读器源代码 学习

    1 来源 http://www.apkbus.com/android-83021-1-1.html 从这个地方下载了一个android 文本阅读器,比较简单,稍微分析以下. 2 代码不是很难,记录以下 ...

  5. android splash 公司,正确地写一个Android Splash页面

    正确地写一个Android Splash页面 打开APP立即进入应用的主页面并呈现出用户想要的内容,对于用户来讲是最好的体验.但是通常APP在启动时需要进行一系列的初始化.网络加载等耗时的操作,因此启 ...

  6. 开发一个基于 Android系统车载智能APP

    很久之前就想做一个车载相关的app.需要实现如下功能: (1)每0.2秒更新一次当前车辆的最新速度值. (2)可控制性记录行驶里程. (3)不连接网络情况下获取当前车辆位置.如(北京市X区X路X号) ...

  7. 基于Android的文本笔记类APP设计

    资源下载地址:https://download.csdn.net/download/sheziqiong/85662015 资源下载地址:https://download.csdn.net/downl ...

  8. 知乎日报富文本处理android,有了这些app,工作效率啪啪啪

    原标题:有了这些app,工作效率啪啪啪 对于热衷于自我提升的职场工作者来说,手机是一个追求高效率的必备工具. 一个高效学习的人,手机里都应该装哪些APP呢? 录音软件 Recordium 参加活动,如 ...

  9. Android实现一个简易的新闻列表APP(TabLayout+ViewPager+Fragment)

    Android实现一个简易的新闻列表APP(TabLayout+ViewPager+Fragment) 文章目录 Android实现一个简易的新闻列表APP(TabLayout+ViewPager+F ...

最新文章

  1. javascript高级程序设计(第3版)之《script元素》
  2. MySQL 存储过程 经常使用语法
  3. Linux创建文件自动消失,Linux中没有文件创建时间的概念
  4. 1006 换个格式输出整数 (15 分)(c语言)
  5. 卧槽,又一款Markdown组合神器!!!
  6. sklearn自学指南(part26)--最近邻算法
  7. win2008修改远程端口
  8. Java基础,不需要使用复杂语句,实现出计算机功能,Java计算机,Java计算器
  9. 计算机地图制图的点状符号制作,计算机地图制图地图符号库系统建立..doc
  10. 【Java 微信公众号开发】① 介绍、测试号、接入
  11. 常用URL schemes ✨支付宝 、微信、腾讯、百度、网易、银行 、社交 、音频 、工具大集合
  12. 苹果企业级开发者账号申请详解
  13. iOS 上的 WebSocket 框架 Starscream
  14. [评论送书 ]手撕源码,实现一个Koa。
  15. Vue中watch、computed、updated三者的区别以及使用方法
  16. mysql内存参数及最大内存
  17. redis哨兵模式出现connected_slaves:0解决办法
  18. 使用Aspose.Words设置word文档多倍行距
  19. ERP项目应该由谁来主导?
  20. C# 读取Excel日期格式

热门文章

  1. mit计算机博士申请英语要求,2020年麻省理工学院博士申请条件
  2. strtok函数与函数用法实例
  3. 10月1日科技资讯|阿里正式控股网易考拉相关公司,丁磊等人撤出;百度 PC 浏览器宣布停止服务;Flutter 1.9.1 发布
  4. ERROR metastore.ObjectStore: Version information found in metastore differs 3.1.2 from expected sche
  5. Java,第二次作业——检查SSN
  6. MATLAB代码实现钻孔地震波波场模拟
  7. 第8期-通过晋江爬取小说
  8. 十大MySQL开发工具
  9. MySQL数据库——对Linux MySQL软件包的一些说明
  10. SAP供应商子范围功能