小白初道
小白初道
关注数: 1
粉丝数: 16
发帖数: 210
关注贴吧数: 17
高清正版动画绘本
458本正版中英文动画绘本,高清、护眼、触点发声,交互学习! · 科学分龄 用心推荐 为宝宝挑选优质绘本,持续更新 · 手指点触 人物发音 与宝宝互动,演绎趣味故事 · 伴读模式 知识要点 父母陪伴,绘本讲解轻松掌握 · 全球正版授权动画绘本 宝宝爱看 ,家长放心
暑假弯道超车必备资料,免费领可打印~
暑期弯道超车必备资料,免费领可打印~
暑假已过大半,剩下时间抓紧补补,免费领可打印~
开学前冲刺,开学后弯道超车!免费领,可打印~
开学前冲刺,开学后轻松!免费领,可打印~
暑假即将结束,为了开学考试,一起复习吧~资料免费领~
再有2星期就开学了,是时候收心学习了!免费领~
开学前冲刺,开学后轻松!免费领,可打印~
默默分享不求留名,免费领能打印~
快开学了,分享点私人收藏~
淄博实验中学假复习资料包,免费领可打印yes!
昌乐二中暑假复习资料包,免费领可打印(^-^)V~
距离开学的时间已经不多,该学习了!这些复习资料免费领可打印!
兴义八中假期玩到超车必备资料,免费领可打印~
广州六中暑假复习资料包,免费领可打印~
佳木斯一中暑期免费复习资料领取,可打印~
科幻恐怖《异形*契约》首映 这里免费送电影票! 《异形*契约》首映送票,加:sql2190837793
看了《金刚:骷髅岛》感觉棒棒哒! 晒个幸福照片哦~
谁女程序员都是女汉子,我可是萌萌哒! 感谢大家支持我!
开发人要换在项目演示中如何隐藏bug?
安卓开发者必备 8 个最优秀的 Android Studio插件 Android Studio是一个功能全面的开发环境,装备了为各种设备——从智能手表到汽车——开发Android应用程序所需要的所有功能。不但有改进的余地,Android Studio还提供了对第三方插件的支持。这是Google I/O 2013第一个宣布的作为Eclipse的继承者,深受广大Android社区的欢迎。下面本文将列出一些最有用的插件 1. genymotion Genymotion是测试Android应用程序,使你能够运行Android定制版本的旗舰工具。它是为了VirtualBox内部的执行而创建的,并配备了一整套与虚拟Android环境交互所需的传感器和功能。使用Genymotion能让你在多种虚拟开发设备上测试Android应用程序,并且它的模拟器比默认模拟器要快很多。 如果你想要确保你开发的应用程序能够在所有支持的设备上流畅地运行,但在特定设备上排除错误有困难时,那就应该好好利用这款伟大的插件。 2. H.A.X.M(硬件加速执行管理器) 如果你想使用Android模拟器更快地执行应用程序,那么H.A.X.M是你的最佳选择。H.A.X.M提供Android SDK模拟器在英特尔系统中的硬件加速。我认为H.A.X.M是最有用的插件,因为它能让Android开发人员尽快地在模拟器上运行最新的Android版本。 安装H.A.X.M 打开Android SDK管理器,选择“Intel x86 Emulator Accelerator (HAXM installer)”,接受许可并安装软件包。 这个进程只是下载软件包,还没有安装。为了完成安装到图片所示的SDK路径C:\Users\Administrator\AppData\Local\Android\sdk\ (安装在Windows机器上)并找到下载的文件夹。我的是:C:\Users\Administrator\AppData\Local\Android\sdk\extras\intel. 打开安装文件Hardware_Accelerated_Execution_Manager,单击可执行的intelhaxm-android,继续安装。完成此安装后,你就可以使用该模拟器了。 3. Android ButterKnife Zelezny Android ButterKnife是一个“Android视图注入库”。它提供了一个更好的代码视图,使之更具可读性。 ButterKnife能让你专注于逻辑,而不是胶合代码用于查找视图或增加侦听器。用ButterKnife编程,你必须对任意对象进行注入,注入形式是这样的: @InjectView(R.id.title) TextView title; Android ButterKnife Zelezny是一款Android Studio插件,用于在活动、片段和适配器中,从所选的XML布局文件生成ButterKnife注入。该插件提供了生成XML对象注入的最快方式。如果只是一两个注入,那么这样写是没有问题的,但如果你有很多要写,那就需要参考所有的注入,将它们编写到源文件中。 4. Android Drawable Importer 为了适应所有Android屏幕的大小和密度,每个Android项目都会包含drawable文件夹。任何具备Android开发经验的开发人员都知道,为了支持所有的屏幕尺寸,你必须给每个屏幕类型导入不同的画板。Android Drawable Importer插件能让这项工作变得更容易。它可以减少导入缩放图像到Android项目所需的工作量。Android Drawable Importer添加了一个在不同分辨率导入画板或缩放指定图像到定义分辨率的选项。这个插件加速了开发人员的画板工作。 5.Strings-xml-tools Strings-xml-tools是一个虽小但很有用的插件,可以用来管理Android项目中的字符串资源。它提供了排序Android本地文件和添加缺少的字符串的基本操作。虽然这个插件是有限制的,但如果应用程序有大量的字符串资源,那这个插件就非常有用了。 6. Android Holo Colors Generator 开发Android应用程序需要伟大的设计和布局。Android Holo Colors Generator则是定制符合喜好的Android应用程序的最简单方法。Android Holo Colors Generator是一个允许你为你的应用程序随心所欲地创建Android布局组件的插件。此插件会生成所有必要的可在项目中使用的相关的XML画板和样式资源。 7. Robotium Recorder Robotium Recorder是一个自动化测试框架,用于测试在模拟器和Android设备上原生的和混合的移动应用程序。Robotium Recorder可以让你记录测试案例和用户操作。你也可以查看不同Android活动时的系统功能和用户测试场景。 Robotium Recorder能让你看到当你的应用程序运行在设备上时,它是否能按预期工作,或者是否能对用户动作做出正确的回应。如果你想要开发稳定的Android应用程序,那么此插件对于进行彻底的测试很有帮助。 8.jimu Mirror Android Studio配备了一个可视化的布局编辑器。但是一个静态的布局预览有时候对于开发人员而言可能还不够,因为静态预览不能预览动画、颜色和触摸区域,所以jimu Mirror来了,这是一个可以让你在真实的设备上迅速测试布局的插件。jimu Mirror允许在设备上预览随同编码更新的Android布局。还有更多精彩内容尽在微信(华清远见):farsight2013
回家程序员的遭遇,躺枪的一定有你! 亲爱的程序员,你回家了吗? 在家遭遇什么了吗? 看看下面这些, 你都中枪了吗?
如何让零基础变为代码高手? 编程不是盗墓,不是请客吃饭,不是描画绣花,不能那样儒雅,那样闲庭信步,那样从容不迫。编程是一门技术,一门进行创造的技术。绝大多数计算机专业的学生是零基础,其中不乏被调剂的。等到毕业之际,有的成了大神,进入BAT或者google微软,有的还是零基础…… 1.最重要的是学会写程序 C语言也好,python也好,你得学会把自己的思考用程序实现。举个例子,你想制定计划表,安排自己的时间,那这个问题就可以写个程序来实现;你想做笔记、管理自己的文件,这也是一个程序。从简单的、直接的几行十几行程序开始,比如计算器;到复杂的小工具,比如大数计算器。这个过程中你逐渐明白数组、指针、内存布局、函数,了解递归、栈、链表,然后学基本的数据结构。之后再写程序,你需要考虑代码的优雅、简单、时间空间效率高,使用什么样的方式来实现最好。最后你学会了复用,学会了调用系统API,学会了想什么就能用代码实现什么或者知道它不能被实现,你就学会了编程。 2. 不要灰心,不要迷茫,要有毅力 你才学了半年,和周围所谓的大牛比是没有意义的。而且编程这东西,个人感觉是入门可能会有困难,但是随着接触到的越多,进步会越来越快的。所以你难道没有发现你的巨大潜力吗?每个大牛也都是从牛犊子开始成长的。 3. 关于编程语言 语言只是工具,没有具体的好与不好,只有合适不合适,喜欢不喜欢。 4. 关于读书 有条件的话最好看国外的原版书或者中文翻译,还可以到华清远见的官网下载免费的pdf格式电子书。 5. 关于写代码 写代码是基本功,代码写不好的,嘴上说多牛逼,多半是瞎扯淡。 6. 关于总结 总结记录,加深记忆,方便以后查看。多进行总结记录也会起到不错的效果。 小编寄语: 成为高手之前,需要经历很多的打磨以及磨砺,不要只看见前人们多牛多牛,而忽略不懈的努力。如果可以的话,小编(微farsight2013)愿与大家一起努力,不疯魔不成佛,奔跑吧,朋友们!
【学习秘籍】让你相见恨晚嵌入式书籍 说不上有多相见恨晚,不过在大量计算机类图书作者都是欺世盗名的情况下,有那么几本靠谱的良心之作,已经够让人欣喜了。 顺便说一下我的读书观或者技术学习观: 买书学习不要纠结可惜钱,纠结买哪本,差不多的可以都买来翻翻看看,一本书五六十而已,学会技术在身,能赚书价的许多倍 要先见森林后见树木,先对一个技术有一个全面的大致的了解,再对感兴趣的点深入学习和了解 见森林我觉得最好的途径就是快速浏览一本全面介绍该技术的书,或者去书城翻阅相关的多本书,看完后也就有大概印象了,哪本好哪本差,各有什么侧重。 善用google 珍爱生命,远离部分国内高校老师出的书 (不绝对,你懂我意思就行了) 我个人把嵌入式linux工作分为3大类: 构建部分:包括环境搭建,工具链制作,内核配置与编译,rootfs编译与制作,inittab 修改,Sxx 启动脚本,等等 内核模块、驱动部分:有一点硬件基础比较好 应用部分:基本纯软件,逻辑部分可以在pc上模拟 下面推荐的书也是在这 3 类中各有针对,可以很容易判断出来的。 1. 《Linux嵌入式系统高级程序设计》 其实讲了产品开发的方方面面,看完会有一种全局观,我不太会总结或者夸,反正看了不会后悔的,而且翻译得也很到位。 2. 《嵌入式Linux基础教程(第2版)》 这本也是全面介绍类的,和上面的差不多的感觉,有些点两者详略方面各有侧重。 3.《Linux设备驱动开发详解 》 详细介绍自旋锁、信号量、完成量、中断顶/底半部、定时器、内存和I/O映射以及异步通知、阻塞I/O、非阻塞I/O等Linux设备驱动理论;字符设备、块设备、TTY设备、I2C设备、LCD设备、音频设备、USB设备、网络设备、PCI设备等Linux设备驱动的架构和框架中各个复杂数据架构和函数的关系,并讲解了Linux驱动开发的大量实例,使读者能够独立开发各类Linux设备驱动。 4.《 嵌入式Linux应用开发完全手册 》 全面介绍了嵌入式Linux系统开发过程中,从底层系统支持到上层GUI应用的方方面面,内容涵盖Linux操作系统的安装及相关工具的使用、配置,嵌入式编程所需要的基础知识,硬件部件的使用及编程UBoot、Linux内核的分析、配置和移植,根文件系统的构造内核调试技术驱动程序编写及移植GUI系统的移植应用程序调试技术。 5. ldd3 能有自己书名的简称的书,都是经典。这本书是以pc上开发linux驱动为例的,但也无妨。 6. 《嵌入式Linux系统开发标准教程》 《嵌入式Linux应用程序开发标准教程》 华清远见(farsight2013)在嵌入式培训界的地位不用说了,它出的书和培训教材,是很实用的,非常适合入门。
科比退役不要哭 ,嵌入式与你一路同行! 听杰伦的歌,看科比的球,和深爱的人拍拖,这便是那一代人的青春。虽然大家都曾想过科比退役这个结局,但这天真正到来的时候还是会难过、会哭泣……就像别人说的那样,未来还会有下一个杰伦,下一个科比,但我们已经没有第二个青春去追了。 科比虽然退役了,但我们的生活不能退役。不要难过,不要哭泣,除了NBA、汽车、美女,我们还可以做很多有意义的事情。比如提升自己的职业竞争力,拿更高的薪资!这个事儿,小编要说,是比科比退役更大更重要的事儿!在拿更高薪的路上,华清远见来帮你!海量的视频教程和图书,帮你成为最优秀的嵌入式开发人才。现在就一起看看华清远见为你准备的精品教程和图书吧! 书籍名称:LinuxC编程从初学到精通 推荐指数:★★★★★ 基本介绍:本书深入浅出、循序渐进地讲解了Linux平台下的C程序设计,并通过大量的程序实例,以及综合开发案例的演示,帮助读者快速掌握Linux下C语言编程的方法和技巧 下载方式:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fbbs.embedu.org%2Fthread-345-1-1.html&urlrefer=a382eac15ad559ead159fb1ce5bf4956 书籍名称:从实践中学嵌入式Linux操作系统 推荐指数:★★★★★ 基本介绍:嵌入式Linux操作系统的基本概念,Linux系统的安装与使用,操作系统的存储管理、进程管理、文件管理、设备管理等几个核心模块,其中涉及对Linux内核代码的部分分析介绍 下载方式: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fbbs.embedu.org%2Fthread-323-1-1.html&urlrefer=3bdc741473b79304e7d6dfe36d724529 书籍名称:嵌入式系统技术与设计 推荐指数:★★★★★ 基本介绍:介绍了ARM处理器的体系结构、编程模型、指令系统和RealViewMDK开发环境,以英蓓特公司的EduKit-Ⅲ实验教学系统为平台,以ARM9处理器S3C2410为核心,介绍了系统的设计及相关接口的操作,并提供了大量的实验例程。最后讲解了嵌入式Linux系统各个组成部分在教学系统上的移植过程 下载方式: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fbbs.embedu.org%2Fthread-331-1-1.html&urlrefer=244774c3b2c75257e4dd478ddd854cf6 书籍名称:Linux内核修炼之道 推荐指数:★★★★★ 基本介绍:本书重点介绍Linux内核工作原理以及学习方法。将Linux内核的修炼之道总结为四个层次:第一层次目的是对Linux以及内核有个全面的认识和了解,掌握Linux内核源代码的分析方法。第二个层次讨论了内核中系统初始化、系统调用、中断处理、进程管理及调度、内存管理、文件系统以及设备驱动等主要部分,目的是希望读者以兴趣为导向,寻找一个子系统或模块,对其代码深入钻研和分析。第三个层次介绍了内核开发与调试的一些基本信息,目的是希望读者能够融入到内核的开发社区,做出自己的贡献。第四个层次浓缩为两个字——坚持。 下载方式:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fbbs.embedu.org%2Fthread-319-1-1.html&urlrefer=738c0a901e0d8ec3cddb8231448ef79a 获取更多教程和书籍请关注“华清远见”公众号和QQ群:177836540
科比退役不要哭 ,一路伴你同行! 听杰伦的歌,看科比的球,和深爱的人拍拖,这便是那一代人的青春。虽然大家都曾想过科比退役这个结局,但这天真正到来的时候还是会难过、会哭泣……就像别人说的那样,未来还会有下一个杰伦,下一个科比,但我们已经没有第二个青春去追了。 科比虽然退役了,但我们的生活不能退役。不要难过,不要哭泣,除了NBA、汽车、美女,我们还可以做很多有意义的事情。比如提升自己的职业竞争力,拿更高的薪资!这个事儿,小编要说,是比科比退役更大更重要的事儿!在拿更高薪的路上,华清远见来帮你!海量的视频教程和图书,帮你成为最优秀的嵌入式开发人才。现在就一起看看华清远见为你准备的精品教程和图书吧! 书籍名称:LinuxC编程从初学到精通 推荐指数:★★★★★ 基本介绍:本书深入浅出、循序渐进地讲解了Linux平台下的C程序设计,并通过大量的程序实例,以及综合开发案例的演示,帮助读者快速掌握Linux下C语言编程的方法和技巧 下载方式:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fbbs.embedu.org%2Fthread-345-1-1.html&urlrefer=a382eac15ad559ead159fb1ce5bf4956 书籍名称:从实践中学嵌入式Linux操作系统 推荐指数:★★★★★ 基本介绍:嵌入式Linux操作系统的基本概念,Linux系统的安装与使用,操作系统的存储管理、进程管理、文件管理、设备管理等几个核心模块,其中涉及对Linux内核代码的部分分析介绍 下载方式: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fbbs.embedu.org%2Fthread-323-1-1.html&urlrefer=3bdc741473b79304e7d6dfe36d724529 书籍名称:嵌入式系统技术与设计 推荐指数:★★★★★ 基本介绍:介绍了ARM处理器的体系结构、编程模型、指令系统和RealViewMDK开发环境,以英蓓特公司的EduKit-Ⅲ实验教学系统为平台,以ARM9处理器S3C2410为核心,介绍了系统的设计及相关接口的操作,并提供了大量的实验例程。最后讲解了嵌入式Linux系统各个组成部分在教学系统上的移植过程 下载方式: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fbbs.embedu.org%2Fthread-331-1-1.html&urlrefer=244774c3b2c75257e4dd478ddd854cf6 书籍名称:Linux内核修炼之道 推荐指数:★★★★★ 基本介绍:本书重点介绍Linux内核工作原理以及学习方法。将Linux内核的修炼之道总结为四个层次:第一层次目的是对Linux以及内核有个全面的认识和了解,掌握Linux内核源代码的分析方法。第二个层次讨论了内核中系统初始化、系统调用、中断处理、进程管理及调度、内存管理、文件系统以及设备驱动等主要部分,目的是希望读者以兴趣为导向,寻找一个子系统或模块,对其代码深入钻研和分析。第三个层次介绍了内核开发与调试的一些基本信息,目的是希望读者能够融入到内核的开发社区,做出自己的贡献。第四个层次浓缩为两个字——坚持。 下载方式:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fbbs.embedu.org%2Fthread-319-1-1.html&urlrefer=738c0a901e0d8ec3cddb8231448ef79a 获取更多教程和书籍请关注“华清远见”公众号和QQ群:177836540
科比退役不要哭 ,我们一路同行! 听杰伦的歌,看科比的球,和深爱的人拍拖,这便是那一代人的青春。虽然大家都曾想过科比退役这个结局,但这天真正到来的时候还是会难过、会哭泣……就像别人说的那样,未来还会有下一个杰伦,下一个科比,但我们已经没有第二个青春去追了。 科比虽然退役了,但我们的生活不能退役。不要难过,不要哭泣,除了NBA、汽车、美女,我们还可以做很多有意义的事情。比如提升自己的职业竞争力,拿更高的薪资!这个事儿,小编要说,是比科比退役更大更重要的事儿!在拿更高薪的路上,华清远见来帮你!海量的视频教程和图书,帮你成为最优秀的嵌入式开发人才。现在就一起看看华清远见为你准备的精品教程和图书吧! 书籍名称:LinuxC编程从初学到精通 推荐指数:★★★★★ 基本介绍:本书深入浅出、循序渐进地讲解了Linux平台下的C程序设计,并通过大量的程序实例,以及综合开发案例的演示,帮助读者快速掌握Linux下C语言编程的方法和技巧 下载方式:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fbbs.embedu.org%2Fthread-345-1-1.html&urlrefer=a382eac15ad559ead159fb1ce5bf4956 书籍名称:从实践中学嵌入式Linux操作系统 推荐指数:★★★★★ 基本介绍:嵌入式Linux操作系统的基本概念,Linux系统的安装与使用,操作系统的存储管理、进程管理、文件管理、设备管理等几个核心模块,其中涉及对Linux内核代码的部分分析介绍 下载方式: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fbbs.embedu.org%2Fthread-323-1-1.html&urlrefer=3bdc741473b79304e7d6dfe36d724529 书籍名称:嵌入式系统技术与设计 推荐指数:★★★★★ 基本介绍:介绍了ARM处理器的体系结构、编程模型、指令系统和RealViewMDK开发环境,以英蓓特公司的EduKit-Ⅲ实验教学系统为平台,以ARM9处理器S3C2410为核心,介绍了系统的设计及相关接口的操作,并提供了大量的实验例程。最后讲解了嵌入式Linux系统各个组成部分在教学系统上的移植过程 下载方式: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fbbs.embedu.org%2Fthread-331-1-1.html&urlrefer=244774c3b2c75257e4dd478ddd854cf6 书籍名称:Linux内核修炼之道 推荐指数:★★★★★ 基本介绍:本书重点介绍Linux内核工作原理以及学习方法。将Linux内核的修炼之道总结为四个层次:第一层次目的是对Linux以及内核有个全面的认识和了解,掌握Linux内核源代码的分析方法。第二个层次讨论了内核中系统初始化、系统调用、中断处理、进程管理及调度、内存管理、文件系统以及设备驱动等主要部分,目的是希望读者以兴趣为导向,寻找一个子系统或模块,对其代码深入钻研和分析。第三个层次介绍了内核开发与调试的一些基本信息,目的是希望读者能够融入到内核的开发社区,做出自己的贡献。第四个层次浓缩为两个字——坚持。 下载方式:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fbbs.embedu.org%2Fthread-319-1-1.html&urlrefer=738c0a901e0d8ec3cddb8231448ef79a 获取更多教程和书籍请关注“华清远见”公众号和QQ群:177836540
快速理解linux流编辑器sed命令 之前介绍过 awk 命令,sed 命令同样是非常重要的文本处理工具,涉及到linux shell开发时,几乎是避不开这两大利器的 sed 是 stream editor 的简写,是一种非交互式的流编辑器,默认情况下,sed并不会改变原文件本身,而只是对文本流进行修改,并将修改后的结果打印到标准输出中 与awk命令一样,sed处理文本时也是以行为单位,每处理完一行就立即打印出来,然后再处理下一行,直至全文处理结束 sed可做的编辑动作包括删除、查找替换、添加、插入、从其他文件中读入数据等 常用场景 (1)shell脚本中不便使用vi命令对文件进行编辑,sed命令则很方便 (2)文件太大,用vi编辑器打开文件有性能问题,就可以使用sed命令编辑 (3)有规律的文本修改,例如全文替换,使用sed命令非常快速 命令格式 sed [options] 'command' file options 是参数 command 是命令集合 file 是要编辑的文件路径 下面通过一些例子来了解sed的基本用法 (1)删除 d 命令用来删除 $ sed '1d' Sed.txt 将Sed.txt的第一行删除后输出到屏幕 由于sed默认不修改原文件,如果希望保存修改后的文件则需要用重定向 $ sed '1d' Sed.txt > Sed2.txt 如果想直接修改文件,使用-i参数 $ Sed -i '1d' Sed.txt 这里不会有任何输出,而是直接修改了源文件,删除了第一行 删除指定范围的行 $ sed '1,3d' Sed.txt 删除第一行到最后行 $ sed '1,$d' Sed.txt 删除最后一行 $ sed '$d' Sed.txt 删除除指定范围以外的行(只保留第5行) $ sed '5!d' Sed.txt 删除所有包含abc的行 $ sed '/abc/d' Sed.txt /abc/ 是指定搜索条件 (2)查找替换 s 命令用来查找替换 $ sed 's/abc/ABC/' Sed.txt 替换Sed.txt中每行的第一个abc为ABC 也可以指定替换的个数,如想替换两个 $ sed 's/abc/ABC/2' Sed.txt 利用g选项,可以完成所有匹配值的替换 $ sed 's/abc/ABC/g' Sed.txt /.../ 内部可以接收正则表达式,例如替换abc开头的 $ sed 's/^abc/ABC/' Sed.txt (3)插入文本 i 命令可以在匹配行之前插入 a 命令可以在匹配行之后插入 在第二行前插入文本 $ sed '2 i test' Sed.txt 在第二行后插入文本 $ sed '2 a test' Sed.txt 也可以在匹配行的上一行插入内容 例如在匹配到abc的行的上一行插入 $ sed '/abc/i\test' Sed.txt (4)打印 使用 p 命令可进行打印,这里使用sed命令时加 -n 参数,表示不打印没关系的行 打印出文件中的第一行 $ sed -n '1p' Sed.txt 使用p命令,只打印实际处理过的行,简化输出 $ sed -n 's/abc/ABC/p' Sed.txt 这个命令先替换abc为ABC,然后只打印出替换过的行
【记忆卡片】linux网络命令 一、ifconfig是查看网卡的信息 ifconfig [Interface] Interface是可选项,如果不加此项,则显示系统中所有网卡的信息。如果添加此选项则显示所指定的网卡信息. 1、配置eth0的IP地址, 同时激活该设备 #ifconfig eth0 192.168.1.101 netmask 255.255.255.0 up 2、配置eth0别名设备eth0:1的IP地址,并添加路由 #ifconfig eth0:1 192.168.1.102 #route add –host 192.168.1.1 dev eth0:1 3、激活禁用设备 #ifconfig eth0:1 up #ifconfig eth0:down 4、查看指定的网络接口的配置 #ifconfig eth0 二、route命令来配置并查看内核路由表的配置情况 1、添加到主机的路由 #route add –host 192.168.1.1 dev eth0:0 #route add –host 10.20.30.148 gw 10.20.30.40 2、添加到网络的路由 #route add –net 10.20.30.40 netmask 255.255.255.248 eth0 #route add –net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41 #route add –net 192.168.1.0/24 eth1 3、添加默认网关 #route add default gw 192.168.1.1 4、查看内核路由表的配置。 #route 5、删除路由。 #route del –host 192.168.1.2 dev eth0:0 #route del –host 10.20.30.148 gw 10.20.30.40 #route del –net 10.20.30.40 netmask 255.255.255.248 eth0 #route del –net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41 #route del –net 192.168.1.0/24 eth1 #route del default gw 192.168.1.1 对于1和2两点可使用下面的语句实现: Ifconfig eth0 172.16.19.71 netmask 255.255.255.0 Route 0.0.0.0 gw 172.16.19.254 Service network restart 三、netstat命令来显示网络状态信息 主要用途有:察看网络的连接状态(仅对TCP有效,对UDP无效)、检查接口的配置信息、检查路由表、取得统计信息。不带参数时表示显示获得的TCP、UDP端口状态,因为UDP为无连接的协议,所以状态对其无意义。常见的状态有:ESTABLISHED、LISTENING、TIME-WAIT,分别表示处于连接状态、等待连接、关闭连接。netstat程序有几个参数选项,用户可以用来查看网络上不同方面的信息,其参数说明如下: -a:选项为显示所有配置的接口 -i:选项为显示接口统计信息 -n:选项为以数字形式显示IP地址 -r:选项显示内核路由表 -s: 选项表示计数器的值。 1、 显示网络接口状态信息。 #netstat –i 2、显示所有监控中的服务器的Socket和正使用Socket的程序信息。 #netstat –lpe 3、显示内核路由表信息。 #netstat –r #netstat –nr 4、 显示TCP/UDP传输协议的连接状态。 #netstat –t #netstat –u
转贴:嵌入式资料分享:电子书分享噢!_嵌入式吧_百度贴吧 嵌入式资料分享:电子书分享噢!_嵌入式吧_百度贴吧来自:http://tieba.baidu.com/p/4183369187
转贴:嵌入式资料分享:电子书分享噢!_嵌入式吧_百度贴吧 嵌入式资料分享:电子书分享噢!_嵌入式吧_百度贴吧来自:http://tieba.baidu.com/p/4183369187
【教程贴】Linux下的GPT分区 全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体磁盘的分区表的结构布局的标准。它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的一32bits来存储逻辑块地址和大小信息的主引导记录(MBR)分区表。 Linux下的GPT分区,这是另外一种分区,针对MBR分区,它有很多优点: (1)几乎突破了分区个数的限制。 在GPT分区表中最多可以支持128个主分区。 (2)单个分区容量几乎没有限制。 单个分区最大支持1EB容量。 因此GPT分区中,主分区和扩展分区,逻辑分区的概念已经很模糊了。甚至没必要这么叫。其实我们知道 扩展分区之所以存在,意义就是为了解决MBR中分区个数的限制问题。既然在GPT中,分区个数几乎没有了 限制,那么这些概念当然就模糊起来了。 好了,废话不多说,讲解GPT分区的步骤吧。 依然是新加入了一块硬盘,我们要为它分区。使用的工具是”parted”,这个工具既可以做MBR分区,又可以做 GPT分区。当然了,还是主要用它来做GPT分区,下面开始分区吧。 在命令行键入命令“parted”,如下:老规矩,还是先来看看parted这个工具的帮助信息吧,键入help,如下:帮助信息好多,截图无法完全展现,总之仔细阅读帮助信息,可以帮助我们分区了。 下面选择新加入的那块硬盘,在这里,它的名字是/dev/sdb。选择这个设备进入分区即可:接着要选择分区表的格式,应该选为gpt格式。表示我们是GPT分区,键入”mklabel gpt”,如下:好了,关键的时刻到了,在parted中,既可以选择交互式的分区(即有问有答的方式),也可以选择 命令的方式,一句话搞定。我们就先用交互式的方式分区吧。 键入命令mkpart,如下:这里是让我们给分区起一个名字。因为GPT分区中模糊了主分区,扩展分区的概念,就没有了那些规定, 因此分区的名称可以随意来起来。随便起一个名字”fuly“,如下:又让你来选择文件系统的类型了,这里先不管,默认即可。直接按下enter键,如下:这里是让输入文件大小的起始点。注意,这里不同于MBR分区中的起始点。在这里输入的是实际文件的大小起始点。 比如我想给这个分区分2000M,那么它的起始点在这里就是0,键入0,如下:这又是让输入终点,输入2000即可。如下:尽然弹出了警告,大概意思就是磁盘中的存储没有达到最好的对齐方式,造成的原因就是我们的起点从0开始了。 如果你不理解,就记住即可。这里我们取消,然后从1开始即可。如下:这样子再一步如图中操作,就完成了这个分区了。那么我们来看看这个分区存在了否,键入print即可,如下:从上图中看到我们刚刚创建的分区fuly。也可以看到它的大小实际上是1999MB。 上面是用交互式的方法来分区的,简单吧。下面我们再来一个分区,使用命令行的方式分区。如下:是不是更简单了,其实这条命令的意思就是创建一个名为kun的分区,大小为1000M,起始点为2000( 因为我们刚才的终点是2000嘛),终点自然就是3000了。 那么分区成功了吗?再用print看一下,如下:分区kun存在了。 好了,假设我们就需要两个分区,那么分区已经完成了。怎么保存退出呢? 只要键入quit即可。如下:好了,不同于MBR还有用w来写入分区表,GPT使用quit退出时就直接生效了。 这样子我们的整个分区工作就完成了。 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 我们曾经用”fdisk -l”命令查看硬盘分区情况,现在再来试试,如下:我们发现此时并不能查看到我们刚才的分区信息。因为使用fdisk工具无法查看gpt分区类型的详细信息。 只能查看msdos类型的分区信息(即MBR分区)。那么怎么查看呢?还是要使用parted工具。先选中gpt这样子分区 的硬盘,然后print即可。你可以直接键入命令“print all".如下:
12道智能嵌入式面试题! 嵌入式工程师在找工作时,会不会常常遇到企业给的面试题?是的,面试题是嵌入式工程师面试中必不可少的一项。下面是某公司提供的部分面试题,希望对大家有帮助! 1、为了向二进制文件尾部增加数据,打开文件的方式应采用 A.″ab″ B.″rb+″ C.″wb″ D.″wb+″ 参考答案:D 2、C语言中,下列运算符优先级最高的是 A.! B.% C.>> D.= = 参考答案:A 3、若main()函数带参数,参数个数最多是 A.0 B.1 C.2 D.3 参考答案:C 4、若有宏定义:#define MOD(x,y) x%y,则执行以下语句后的输出结果是 int a=13,b=94; printf(″%d\n″,MOD(b,a+4)); A.5 B.7 C.9 D.11 参考答案:B 5、若定义了char ch[]={″abc\0def″},*p=ch;则执行printf(″%c″,*p+4);语句的输出结果是 A.def B.d C.e D.0 参考答案:C 6、下列转义字符中错误的是 A.′\000′ B.′\14′ C.′\x111′ D.′\2′ 参考答案:C 7、权限为765的文件,下列哪个是正确的权限位标记()? A.-rw-rw-r-x B.-rw-r-xr-r C.-rwxrw-r-x D.-rwxr-xrwx 参考答案:C 8、cp拷贝命令的-f参数含义为? A.拷贝目录 B.递归处理 C.显示执行过程 D.强制进行拷贝 参考答案:D 9、在xdm的配置目录中,哪个文件用来设置在用户通过xdm登录后自动起动的应用程序? A.The Xsession file B.The Xsetup_0 file C.The Xstart_up file D.The GiveConsole file 参考答案:B 10、内核不包括的子系统是 。 A.进程管理系统 B.内存管理系统 C.I/O管理系统 D.硬件管理系统 参考答案:D 11、建立动态路由需要用到的文件有? A./etc/hosts B./etc/HOSTNAME C./etc/resolv.conf D./etc/gateways 参考答案:D 12、设fp已定义,执行语句fp=fopen("file","w");后,以下针对文本文件file操作叙述的选项错误的是: A.可以随意读和写 B.只能写不能读 C.可以在原有内容后追加写 D.写操作结束后可以从头开始读 参考答案:ACD
程序员选择公司的8个标准 很荣幸地为大家介绍8问题检测法,只需回答这8个问题,就能判断工作的好坏。我们也可以在面试的时候,偷偷给这家公司测试一下,如果你的回答里面有 2 个 yes,那么就需要拉响警报,不要再考虑这家公司了。 1我的薪资是否低于市场价值水平? 如果有公司愿意提供 4 万 8 的月薪搜罗拥有 10 年 C++ 多线程编程经验的骨灰级程序员, 我想说这公司肯定是疯了!呵呵,这种疯言疯语绝非长久之计,因为只有你的价值大于给你的价格,才会有公司愿意要你,所以各位还是不要心存妄想,现实一点吧。 2我需要随传随到吗? 没人乐意随时待命,因为一旦如此,就意味着哪怕是周末的凌晨 3 点,就算是支持门户页面上的 Reset 按钮呈现的蓝色调与预想的不同,也会 call 你。当然偶尔一两次我们也可以理解和容忍。 3我是 IT 人员吗? 程序员写软件、支持软件,天经地义。但这并不意味着,你就是专门搞电脑的 IT 人员了。试问,公司人员会不会因为一点点计算机的琐事就来麻烦你,比如说某位员工安装了加菲猫的屏保之后她的笔记本就发生异常了? 4公司满足我们配备多个显示屏的要求吗? 我仍然清楚的记得,那是在 1998 年,我们需要整天盯着一台 17″的显示屏,苦不堪言。现在,100 美元就能买到一台又大又薄的 LCD 了。如果你的公司认为让你的效率加倍不值得 200 美元,那么这公司可能是个不以盈利为目的古怪亿万富翁拿来开玩笑的玩具吧? 5会不会维护一些古老的系统,这些老系统是用什么语言写的? 干得久了,你可能会听到“好,下面我们要进入 Ruby on Rails 语言系统,但是首先我们需要你先解决一些 VB 4 的问题。呵呵,千万不要想的太简单了。 这个 VB4 系统将一直苟延残喘,让你头大无比。 6我上网是被监控和过滤内容的吗? 程序员需要解决问题,需要高效地解决问题,资源是必须的。而互联网堪称取之不尽用之不竭的资源宝库。如果一家公司不能与时俱进,甚至阻止员工自由使用 Usenet/ 谷歌/Stack Overflow,把员工当做小孩子和色情狂看待,那待着还有什么意思? 7就我一个程序员吗? 我们能成长为一枚程序员,首先应该感谢的是我们的同事。我们互相解惑、审查对方的代码、我们在一起讨论,一起经历从一片茫然找不到方向到想出一个个创造性的建议。如果只有你一个程序员,那是得不到任何技术反馈的,而且我们自己本身也成长不了。此外,当出现问题的时候,你也只能靠自己的直觉判断对错。 8需要每周出差不? 出差有时候是必不可少的,特别是那些与客户面对面开会或者会晤外派同事的时候。但是如果需要你每周离开家去出差那就要三思了。 上述8个问题构成了一套完整的工作测试。当然,并不是每一项都必须达到的(比如说,在初创企业中,我们就得身兼 IT 人员或者 24 小时随传随到)。不过,只要有一个问题的答案是 yes,那你最好尽快离开这家破公司的面试,哪怕编撰说你心脏病发了。 无论项目有多大的潜力,队友有多大的能力,但凡是在这样一个不良于行的大环境中,你,一个小小的程序员是做不了真正有意义的工作的。如果一家公司上述 8 问题统统回复 yes,那它要么是在走下坡路,要么已经在大厦将倾的过程中了。
【值得推荐】Android10个最常见问题 1.app启动后,红色界面,unable load jsbundle 解决办法:一般来说就是,你是用dev-serve方式,且你的server没有正确匹配上,如果是用手机跑的话,需要pc和手机在同一个wifi下,且通过menu键设置menu-ip为pc的ip,如果是模拟器,则不需要手动设置ip,设置的话,反倒会出错 2.app启动后,红色界面,unRegisteredProject 提示提示什么,你的app没有在启动时候注册 解决办法:这个后面也是一看就知道的错误,就是你的index.android.bundle中的最下面写的那个 ‘componetNameInYourLocalProject’在你的java代码中不是叫这个名字,自己check下,立刻就能修复AppRegistry.registerComponent(‘componetNameInYourLocalProject’, () => JSObjAndroid); 3.require(”xxx”)的组件失败 js代码中有时候会出现require(”xxx”)的组件出错 解决办法:检测该node组件是否存在你的服务器上,如果是自己封装的NativeModule话可以直接使用 var CustomMoudle = React.NativeModules.YourCustomModule CustomMoudle.yourMethodDeclearInYourNative(‘someparms’); 4.调试 解决办法:可以利用pc端的chrome的 debug工具进行js端的调试,native的调试就只能用logcat跟踪了,目前看到大部分的错误都是自己代码的问题,ReactAndroid本身的Crash较少 5.so库的问题 gradle的话,可以通到ndk filter来控制:android { defaultConfig { ndk { abiFilters “x86″, “armeabi-v7a” } } maven的话,可以手动通过libs下的so拷贝来解决问题。 这块有个比较大的坑就是,默认引入的jsc.aar中存在armabi文件夹,但是里面没有jsc.so 。导致在多个地方,去编码源码时ndk方面会报错。 6.关于设备MinSdkVerison 默认Android要求4.1以上设备(4.0根据网络数据大概占比0.7比例,随着大部分app已经不支持4.0以下设备了,这块倒还可以接受) 刚开始一直使用一个5.0的设备进行ReactAndorid的测试和开发,后来方向,其实搞上一个5.0+的genymotion模拟器联调起来效率会更高。 7.UIExplorer demo问题 之前一直在看具体接入和代码实现方面的,当大头的工作回过头来看,其实当时应该先从这个UIExploror入手的话,效率和进度应该会有较大提高的。 这块需要编译react源代码,如果遇到了http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fgithub.com%2Ffacebook%2Freact-native%2Fissues%2F3976&urlrefer=2f45dbf3b829e2f1b09ffc517ed96f07 的问题,可以使用我在下面回复的方法hook,但是本质原因还是那个armabi jsc.so的问题 8.能力覆盖范围 根据团队之前React iOS的经验,跟进主干代码,依赖RN本身提供的UI组件可以满足大部分业务场景。 当然自己如果想复用之前团队沉淀下来的,配合着UIManager和UIModule这块本身工作量到也不算太大。 但是应该尽可能的和团队以后的JS端和iOS端的协议接口保持一致,让React最大的意义发挥出来,“lean once run everywhere” 9.数据安全 0.14之前只支持dev-pc 和assert方式,从0.14.0 realease版本开始支持local file patch加载方式,最新版0.15.1。 因为如果要动态能力,js必定是走网络端下发的,js本身是明文(即使JS做了混淆),数据防劫持的保护还是必须要做的,这点可以配合https防篡改+sign校验来做 10.JNI消息轮训带来的影响 由于JNI的通信限制,Java层和Native通信是单向的,且为了保证RN的16ms的渲染频率,所有Java-Native-jscore层的通信都是异步的,这样可能对于JAVA层的UI渲染是个性能问题。 当消息量非常大或Listview页面非常复杂时候,每1层Cell的渲染要以Css-ScrowllerView模型需要UI线程的连续绘制,对于瀑布流负责listview等可能会存在性能问题,但是该问题本身肯定是优于H5的体验的
转贴:快到七夕了,我们一起送上程序员独特的表白方式!_嵌入式linu... 感觉很不错,值得分享给大家! 快到七夕了,我们一起送上程序员独特的表白方式!_嵌入式linux吧_百度贴吧来自:http://tieba.baidu.com/p/3980682749
快到七夕了,我们一起送上程序员独特的表白方式! 七夕到了,作为程序员,做个小小程序,送给你最爱的人吧!让她打开你为他做的程序,感受你对他的爱,程序员也浪漫!(附上效果图)作为程序员,你应该懂得以下语句,不多说! #include<stdio.h> main() { printf(" * * * * * *"); printf("\n"); printf(" * * * *"); printf("\n"); printf(" * * * *"); printf("\n"); printf(" * * * *"); printf("\n"); printf(" * * * *"); printf("\n"); printf(" * * * *"); printf("\n"); printf(" * * * *"); printf("\n"); printf(" * * * *"); printf("\n"); printf(" * * * *"); printf("\n"); printf(" * * *"); printf("\n"); printf(" * 如果我能把时间存入一个瓶子, *"); printf("\n"); printf(" * 我要作的第一件事就是, *"); printf("\n"); printf(" * 把每一天都存下来直到永恒, *"); printf("\n"); printf(" * 再和你一起慢慢度过。 *"); printf("\n"); printf(" * 如果我能把时间化作永恒, *"); printf("\n"); printf(" * 如果我的愿望能一一成真, *"); printf("\n"); printf(" * 我会把每天都像宝贝一样存起来, *"); printf("\n"); printf(" * 再和你一起慢慢度过。 *"); printf("\n"); printf(" * *"); printf("\n"); printf(" * Whole life one a life time!! *"); printf("\n"); printf(" * *"); printf("\n"); printf(" * I LOVE YOU!!! *"); printf("\n"); printf(" * *"); printf("\n"); printf(" * *"); printf("\n"); printf(" * *"); printf("\n"); printf(" * *"); printf("\n"); printf(" * *"); printf("\n"); printf(" * *"); printf("\n"); printf(" *"); printf("\n"); getch();
免费分享嵌入式培训资料,不要邮箱,也不要qq,更不要钱! 一楼,祭天,祭度娘!
Android常用对话框合集 [1].[代码] MainActivity package com.example.dialog; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import android.app.Activity; import android.app.ActionBar; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.app.Fragment; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnMultiChoiceClickListener; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; import android.os.Build; public class MainActivity extends Activity { private Context context = this; private int select; //获取单选对话框被选中的选项 private Collection<Integer> selects = new HashSet<Integer>(); //获取多选对话框被选中的选项 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dialog); } //普通对话框 public void click1(View view) { AlertDialog.Builder builder = new Builder(context); builder.setTitle("今晚打老虎"); builder.setIcon(R.drawable.ic_launcher); builder.setMessage("Are you sure?"); //确定按钮 builder.setPositiveButton("Yes", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(context, "爱去做你去 :"+which, 0).show(); } }); //取消按钮 builder.setNegativeButton("No", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(context, "点击了不! :"+which, 0).show(); } }); //放在中间的按钮 builder.setNeutralButton("cancel", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(context, "点击了取消 :"+which, 0).show(); } }); builder.show(); //实际上包含了调用了 builder.create(); } //单选对话框 public void click2(View view) { AlertDialog.Builder builder = new Builder(context); builder.setTitle("你最喜欢的周星驰电影?"); builder.setIcon(R.drawable.ic_launcher); final String[] items = {"大话西游","唐伯虎点秋香","赌侠2","逃学威龙"}; //checkedItem 设置默认选中的选项 builder.setSingleChoiceItems(items, 2, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //Toast.makeText(context, items[which] + "被选中了", 0).show(); //dialog.dismiss(); //点击选择之后自动关闭对话框 select = which; } }); //确定按钮 builder.setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(context, "选择了"+items[select], 0).show(); } }); builder.show(); } //多选对话框 public void click3(View view) { AlertDialog.Builder builder = new Builder(context); builder.setTitle("你最喜欢的周星驰电影?"); builder.setIcon(R.drawable.ic_launcher); final String[] items = {"大话西游","唐伯虎点秋香","赌侠2","逃学威龙"}; builder.setMultiChoiceItems(items, new boolean[]{false,false,false,false}, new OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { //Toast.makeText(context, items[which] + isChecked, 0).show(); if (isChecked) { selects.add(which); } else //加入选中之后再取消勾选,就将该选项清除 { selects.remove(which); } } }); //确定按钮 builder.setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Iterator it = selects.iterator(); while(it.hasNext()) { int i = (Integer) it.next(); Toast.makeText(context, "选择了"+items[i], 0).show(); System.out.println(items[i]); } selects.clear(); //清除之前选中的结果 } }); builder.show(); } //进度对话框 public void click4(View view) { final ProgressDialog pd = new ProgressDialog(context); pd.setTitle("起什么标题好?"); pd.setIcon(R.drawable.ic_launcher); pd.setMessage("正在拼了命地加载"); pd.show(); new Thread(new Runnable(){ @Override public void run() { for(int i=0; i<101; i++) { pd.setProgress(i); try { Thread.sleep(50); } catch (InterruptedException e) { e.printStackTrace(); } } pd.dismiss(); //自动关闭对话框 } }).start(); } //进度条对话框 public void click5(View view) { final ProgressDialog pd = new ProgressDialog(context); pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //设置为进度条对话框 pd.setMax(200); //设置进度条最大值 pd.setTitle("起什么标题好?"); pd.setIcon(R.drawable.ic_launcher); pd.setMessage("正在拼了命地加载"); pd.show(); new Thread(new Runnable(){ @Override public void run() { for(int i=0; i<201; i++) { pd.setProgress(i); try { Thread.sleep(20); } catch (InterruptedException e) { e.printStackTrace(); } } pd.dismiss(); //自动关闭对话框 } }).start(); } } [2].[代码] activity_main
1
下一页