
软件开发
文章平均质量分 55
bwf_erg
这个作者很懒,什么都没留下…
展开
-
Android 本地语言开发包
NDK称为native development kit本地语言(C&C++)开发包。而与之相对应的则是Android-SDK(software development kit)软件开发包。利用NDK可以开发纯C&C++的代码,然后编译成库,让Android-SDK开发的Java程序来调用使用。NDK开发的可以称之为底层开发或者JNI(java native interface)层开发,原创 2017-07-03 16:51:48 · 904 阅读 · 0 评论 -
养成这五个习惯,成为资深设计师(二)
养成整理并且归类素材的好习惯。下面这些作品的风格看似归类为复古风。当你要做一个复古风的作品时,就可以从下面这些作品中去参考,汲取灵感。再比如,下面这些作品的风格我们给它整理为时尚风。当你要做一个时尚风的作品时,就可以从下面这些作品当中去找寻激发你灵感的原创 2016-12-21 16:24:43 · 312 阅读 · 0 评论 -
养成这五个习惯,成为资深设计师(四)
不仅要规范图层的命名,还要规范你的工作文件的命名。规范工作文件的命名其实有两个主要原因。第一,方便后续进行文件查找。比如今天其他部门的同事需要用到你之前做的一个发布会H5的源文件,假使你没有规范命名,那么你该从何查找呢。你要打开之前几年做的文件,一个一个找吗?毫无疑问这是一个浪费时间的行为。那假如一开始做需求的时候,你首先新建了一个文件夹,并把这个文件夹命名为2016_10_12_H5_201原创 2016-12-21 15:29:47 · 308 阅读 · 0 评论 -
养成这五个习惯,成为资深设计师(三)
规范命名源文件的图层,并做好分组。在工作中会经常遇到要多次修改处理别人作品的情况。如果客户提供他们的设计师做的原始文件,那么我们来修改成合适大小的尺寸,适配到我们的客户端上面,这时候的设计师就被称为“接盘侠”。打开我看到源文件里面乱七八糟的图层命名和乱七八糟的分组,我都不太想去修改。混乱的命名和分组的不规范是对使用你源文件的人的不负责。如果是图层较为简单的源文件,后果还没那么严重。原创 2016-12-21 15:11:23 · 316 阅读 · 0 评论 -
养成这五个习惯,成为资深设计师(一)
习惯有一股强大的力量,它在不经意间改变你的生活方式,工作方式。良好的工作习惯可以极大地提高工作效率和专业能力。新人设计师刚刚从事在工作岗位,平时养成一些良好的习惯可以快速提升成长的速度,提高工作效率,接到需求的时候不会无从下手。 养成整理给素材归类的好习惯。经常在网上浏览欣赏别人的作品,看到好的作品,我们会觉得心动,思考别人的作品出发的角度!于是点击鼠标右键另存为,默默保存原创 2016-12-21 13:47:49 · 421 阅读 · 0 评论 -
SQL查询中的UNION ALL和UNION区别
UNION和UNION ALL的重要的区别关于对重复结果的处理。 UNION在合并子查询重复的记录只保留一条,而UNION All并不合并子查询的重复记录。现举例说明它们之间的区别。示例1:查询职位为‘CLERK’员工信息。SQL> SELECT EMPNO,ENAME,JOB DEPTNO FROM EMP WHERE JOB='CLERK';原创 2016-12-21 11:25:27 · 292 阅读 · 0 评论 -
DOMJ节点关系(二)
三、兄弟节点1.previoursSibling获取该节点的上一个兄弟元素。在IE浏览器中可以使用2。previoursElementSibling获取该节点的上一个兄弟元素。在非IE浏览器中可以使用3.nextSibling获取该节点的下一个兄弟元素。在IE浏览器中可以使用4.nextElementSibling获取该节点的下一个兄弟元素。在非IE浏览器中可以使用原创 2016-11-28 13:29:53 · 694 阅读 · 0 评论 -
web前端开发中浏览器兼容问题(一)
浏览器兼容性问题又被称为网页兼容性或网站兼容性问题,指网页在各种浏览器上的显示效果可能不一致而产生浏览器和网页间的兼容问题。通俗的讲,就是使用不同的浏览器(Firefox、Chrome、IE6、IE7等)访问同一个网站,或者页面的时候,在一个浏览器下显示正常,在另一个浏览器下就全乱了。这是因为不同的浏览器对CSS解释不同。最常用到的浏览器 最让人头疼的浏览器原创 2016-11-28 10:26:01 · 438 阅读 · 0 评论 -
Android最佳的开源库(四)
网络OkHttp:Android的HTTP客户端库。AndroidAsync:异步通信库。通知推送PubNub:用来处理推送通知的通信服务。Gandalf:给用户发送更新或维护消息库。支付Android In-App Billing v3 Library:开发者通过Android v3 API轻松处理应用程序支付问题。Checkout:Android平台上的另一个支原创 2016-11-15 11:16:31 · 341 阅读 · 0 评论 -
一名设计师,要具备的知识管理思维(二)
(三)消化想要的信息都找到了,也看过了,这些知识就属于你了吗?显然没有,目前为止你已经为每条信息进行了保存,没有为信息标注,到了要使用信息时你是无法在脑海中检索的。那么就需要我们对现有的信息进行消化,比如打开花瓣,看看收集的图片,从构图、排版、色彩,光影几个层次分析一下图片,然后从作者的角度出发想想为什么这样做,他用了什么方法?以图片为例:经过不断的消化总结,之前收集的信息就更条理了,很多原创 2016-12-21 16:39:48 · 281 阅读 · 0 评论 -
HTML5新增标签(一)
html5相对以前的基础上增加了许多标签Paste_Image.png头尾部新增头部新增header 、 nav 、input[ type=search ]等;尾部新增footer 等header> h1>logoh1> nav> a href="">导航1a> a href="">导航2a>原创 2016-12-22 10:59:47 · 343 阅读 · 0 评论 -
内连接,交叉连接
内连接:内联接是用比较运算符比较要联接列的值的联接 内连接:join 或 inner join sql 语句:select* from table1 join table2 on table1.id=table2.id等价(与下列执行效果相同)A:select a.*,b.* from table1 a,table2 b where a.id=b.idB原创 2017-07-03 16:24:40 · 917 阅读 · 0 评论 -
MyBatis 拦截器(4)
第一步:建立一个分页数据保存的基类BwfPagingBean。省略了getter、setter第二步:把User bean修改为继承自BwfPagingBean。第三步:添加mapper 分页查询语句。第四步:添加分页查询接口方法。第五步:实现拦截器。1. 新建BwfPagingInterceptor实现Interceptor接口原创 2017-06-05 15:25:16 · 548 阅读 · 0 评论 -
博为峰Java技术题 ——JavaSE Swing JComponent类Ⅰ
博为峰小博老师:JComponent类是所有轻量级组件的父类,为了能够更加清晰地了解JComponent类的主要子类,这里将以图的形式列出其子类,如下图所示:当然,JComponent类的子类远远不止以上所列出的几个,这些只是一些常用的子类。从上面可以看出,所有继JComponent类的组件都属于基本组件类,它们只能依赖于中间容器而存在。JComponent类的一些原创 2016-12-22 13:34:02 · 527 阅读 · 0 评论 -
小博老师解析Java核心技术 ——JSwing基本菜单制作
[引言]我们在学习Java编程的时候,如果需要开发客户端窗体类型的程序,可以使用JDK中的awt和swing库。本文开始小博老师就继续为大家演示Java窗体编程中的菜单栏制作,今天主要讲解的菜单栏中的基本功能。 [步骤阅读一]菜单栏对象结构我们在制作窗体应用程序的时候,一般都需要为客户制作菜单栏,菜单栏中包含了整个应用程序的所有功能并且进行了归类。 在制作JSwing窗体菜原创 2016-12-22 11:57:52 · 622 阅读 · 0 评论 -
初学HTML5必须知道的那些事(三)
★值得注意的有以下几点1.封闭标记(双标记)和非封闭标记(单标记)封闭标记有始有终,有头有尾,比如说、 、、等,如果少了一边比如我是段落我是标题我也是段落,诶,怎么我有点不一样输出为我是段落我是标题我是段落,诶,怎么我有点不一样这是少了一边的后果,双标记中,我们少了一边很可能让我们做出来的HTML网页和设想中的HTML网页大相径庭。2.文本和特殊字符原创 2016-12-22 11:35:49 · 336 阅读 · 0 评论 -
初学HTML5必须知道的那些事(二)
二、HTML5区别与之前繁杂的XHTML,HTML在头文件就简单了很多。http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">这是XHTML,怎么样,看起来就很复杂吧。而在HTML5中头文件只有这一行。下面我们来看看HTML(HyperText Markup Language)1. 超文本标记语言,一种纯文原创 2016-12-22 11:26:25 · 332 阅读 · 0 评论 -
初学HTML5必须知道的那些事(一)
很多时候,不是东西有多难,而是我们不愿意走出这第一步,勇敢的走出这第一步,剩下的即是水到渠成。一、Web基础1. 认识Internet与Web· Internet将不同地区不同功能的计算机联系起来。打个比方,我们每家人都是计算机,想要去亲戚朋友家的路就是internet。· webinternet上最大的一个应用,众多数据储存的地方。2. Web的三要素原创 2016-12-22 11:18:29 · 294 阅读 · 0 评论 -
HTML5新增标签(二)
table新增table新增以下标签table summary="财务表格" border="1"> caption>财务表格caption> colgroup> col width="*"> col width="*"> col width="*"> col width="*"> col原创 2016-12-22 11:08:58 · 272 阅读 · 0 评论 -
小博老师解析Java核心技术点 ——Servlet生命周期
[理论知识]我们在学习JavaEE企业级开发的初期,经常会遇到有关于Servlet生命周期的问题,这方面的理论知识网上有详尽的介绍,但是光理解理论概念以及Servlet生命周期的执行顺序是不够的。[步骤解读一]Servlet生命周期小博老师先为大家演示一下基本Servlet的生命周期,核心代码如下:@WebServlet("/BWF01")public class BWF01S原创 2016-11-15 09:37:52 · 397 阅读 · 0 评论 -
React Native Android Gradle 编译流程浅析(二)
你可能会比较好奇在 app 的build.gradle 中进行依赖配置这个过程吧,下面就来仔细分析这种引用方式下的编译流程。1、首先 npm install 时会依据 package.json 的依赖配置下载安装 node_modules 里面的相关模块。2、完事打开 $rootDir/../node_modules/react-native/android 目录你会发现下面竟然是个本原创 2016-11-18 11:21:38 · 380 阅读 · 0 评论 -
React Native Android Gradle 编译流程浅析(一)
我们先从 React Native 的 Android 编译来简单揭晓一下 React Native 在集成的过程中到底干了哪些不可告人的坏事;由于我们项目准备以 Gradle 形式接入,加上对 Gradle 比 BUCK 熟悉的多,所以本文就来分析 RN Gradle 的编译流程;至于 BUCK 编译,后面有时间了再研究下写一篇吧。市面上 RN 的文章都烂大街了,除过几个给力的厂子分享的文章原创 2016-11-18 10:35:45 · 152 阅读 · 0 评论 -
Android Data Binding(一)
Data Binding 数据绑定,要学习Data Bingding 需要大家对Activity/Fragment/Android UI的使用非常熟悉。然后对RecylerView有一定的了解。RecylerView是google这两年提出的取代ListView、GridView的列表。相比前两者RecyclerView提供了更强大的功能,它本身就可以支持ListView、GridView还有瀑布原创 2016-11-09 11:17:17 · 330 阅读 · 0 评论 -
推送的实现原理
要获取服务器上不定时更新的信息,一般来说有两种方法:第一种是客户端使用Pull(拉)的方式,就是隔一段时间就去服务器上获取一下信息,看是否有更新的信息出现。第二种就是 服务器使用Push(推送)的方式,当服务器端有新信息了,则把最新的信息Push到客户端上。这样,客户端就能自动的接收到消息。 1)轮询(Pull)方式:应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达,你必须原创 2016-11-08 15:01:37 · 1250 阅读 · 0 评论 -
Oracle DML触发器
触发器有单独的名字空间,所以触发器名可以与表名和过程名相同,但在同一个schema中的触发器不能重名。 示例 create or replace trigger emp_inert_trgger after insert on emp FOR EACH ROW begin dbms_output.put_line('The Name原创 2016-10-25 16:59:40 · 397 阅读 · 0 评论 -
Oracle系统触发器
系统触发器是在进行数据库系统事件时进行触发,主要包括DDL语句,其语法格式如下:create or replace trigger [schema.]trigger_name {before | after} {DDL_EVENT_LIST | database_event_list} on {database | [schema.]SCHEMA}原创 2016-10-25 16:52:32 · 1272 阅读 · 0 评论 -
Oracle替代触发器
由于视图有可能是由多个表进行关联而成,这种情况下,直接通过更新视图来更新基表是不可行的,这个时候我们就可以通过替代触发器来工作了。 示例:--准备操作INSERT INTO DEPT(DEPTNO,DNAME,LOC) VALUES(60,'研发部','上海');INSERT INTO EMP(EMPNO, ENAME,JOB,原创 2016-10-25 16:42:31 · 2747 阅读 · 0 评论 -
这几条UI原则可以让你的设计提高(下)
7.用现有的问题完善界面人们会寻求各种方案去解决已经存在的问题,而不去解决潜在的或者未来的问题。所以,不要为假设出的问题来设计界面,我们应该观察现有的用户行为和设计,解决现在存在的问题。这确实不是件能够让人高兴的事情,但这是最有价值的事情,因为你的用户界面越完善,越会有更多的用户使用你的界面。8.优秀的设计是无形的优秀的设计有个奇怪的属性,它经常会被用户忽略。其中一个原因是这个设计非常原创 2016-11-03 16:46:16 · 474 阅读 · 0 评论 -
这几条UI原则可以让你的设计提高(中)
4.有步骤的展现信息每个屏幕只要展现必需的内容。若用户需要而作出决定,则展现足够的信息让用户选择,他们会在下一屏找到所需的细节。避免过度的展现或把所有的都一次展现完,如果可以,将选择放在下一屏以有步骤地有顺序地展示信息。这会使你的界面交互更加清晰。 5.设计内嵌的“帮助”选项在一个友好的用户界面,“帮助”选项是不一定必须出现的,因为用户界面已经能够有效地指引用户浏览和学习操原创 2016-11-03 16:38:58 · 319 阅读 · 0 评论 -
设计师要懂布局(四)
03使用三分法 使用三分法或者黄金比例设计页面。简单地说,三分法规则就是将你的页面垂直和水平分成为三份,在该网格线相交的点是天然焦点。用图上这四点调整你的关键要素,会让你的页面更加赏心悦目。 就其本身而言,三分法不会很好的为你平衡布局,但通过延长原理来从这个天然焦点发散,可以帮助你平衡布局页面。原创 2016-11-29 10:14:27 · 323 阅读 · 0 评论 -
UI 界面性能优化(一)
人类大脑与眼睛对一个画面的连贯性感知其实是有一个界限的,譬如我们看电影会觉得画面很自然连贯,其帧率通常为 24fps;那么,用手机当然也需要感知屏幕操作的连贯性(尤其是动画过渡),所以在手机领域 Android/iOS 索性就把达到这种流畅的帧率规定为 60fps。基于上面的背景,我们开发 App 的帧率性能目标就是保持在 60fps(16ms/帧),即我们在进行 App 性能优化时,要遵原创 2016-11-16 11:26:35 · 1826 阅读 · 1 评论 -
Android最佳的开源库(三)
位置ReactiveLocation:是一个轻量小型但非常实用的Google Play API封装,可以获取位置。 Smart Location Library:简化定位程序使用。布局Android Swipe Layout:为对象提供滑动功能,例如滑动删除。FlexboxLayout:CSS领域一个非常强大的布局工具。日志Logger:一款简单但功能强大的日志工具。原创 2016-11-14 13:31:40 · 231 阅读 · 0 评论 -
Android最佳的开源库(二)
数据库SQLBrite:是一个响应式数据库框架,可以完美解决数据库和UI的同步更新。Sugar ORM:无需编写SQL语句就可以轻易操作SQLite数据库。数据结构Eclipse Collections:Java集合框架,例如将迭代方法放在容器类型上。日期&时间TimesSquare for Android:一款非常漂亮的日历控件。Material Calendar V原创 2016-11-14 13:27:22 · 265 阅读 · 0 评论 -
UI 界面性能优化(四)
减少系统GC次数Android 上的 GC 会引起性能卡顿,必须重点优化。除了于图片内存引起 GC 的优化,我们还做了如下工作:减少对象分配,找出不必要的对象分配,如可以使用非包装类型时,使用了包装类型,避免 Autoboxing -> unboxing 的过程,同时避免大量对象字符串的+号操作,如果不考虑线程安全引起的问题时,优先使用 StringBuilder,而非String原创 2016-11-17 10:29:57 · 315 阅读 · 0 评论 -
UI 界面性能优化(三)
加快界面加载除了从 XML Layout 文件里面角度减少布局层级,还通过提前加载布局,即在线程中做一些必要的 inflate 等来提前初始化布局,减少实际显示时的耗时。对于一些复杂的布局,我们还会自己做View对象复用池,减少 inflate 带来的性能损耗,特别是在列表控件中。可以通过 TraceView 工具找出主线程的耗时操作和其他耗时的线程并作优化,另外减少主线程的 GC 停顿。原创 2016-11-17 10:20:01 · 890 阅读 · 0 评论 -
小博老师解析Java核心技术点 ——8个常见日志框架
[理论部分]作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用、Web应用以及移动应用。然而日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日志可以帮助我们更好更快地定位bug;在运行维护阶段,日志系统又可以帮我们记录大部分的异常信息,从而帮助我们更好的完善系统。接下来,小博老师就要来分享一些Java程序员最常用的Java日志框架组件。 [步骤阅读]8个原创 2016-11-29 15:40:20 · 889 阅读 · 0 评论 -
Spring MVC DispatcherServlet介绍
在前面几节中,我们了解到在SpringMVC 框架中,DispatcherServlet是负责分发请求的。今天小博老师带领大家一起详细的学习下DispatcherServlet的使用方法。首先我们要了解如何在web.xml中配置dispatcherServlet: Bsoweifeng org.springframework.web原创 2016-11-29 14:30:37 · 301 阅读 · 0 评论 -
Android客户端缓存机制之多媒体文件缓存
多媒体文件缓存(1)图片缓存图片的缓存可以根据当前日期,时间为名字缓存到SD卡中的指定图片缓存目录,同时数据库中做相应记录,记录办法可以采用两个关键字段控制,一个字段是该图片的URL地址,另一个字段是该图片的本机地址.取图片时根据URL在数据中检索,如果没有则连接服务器下载,下载之后再服务器中作出相应记录.(2)视频文件缓存考虑到视频文件就是动画片,每一集的大小应该超过20MB原创 2016-11-29 13:20:40 · 511 阅读 · 0 评论 -
UI 界面性能优化(二)
Android 平台主要通过优化 Layout 布局层次角度:减少层级和 Overdraw、防止不必要的重新 Layout 和 Measure、加快界面显示速度、减少系统 GC 次数等措施去进行 UI 优化。优化 GPU Overdraw通过开发者选项的“Show GPU Overdraw”可以显示检查界面的过度绘制情况。该优化并不复杂,通过去掉层叠布局中多余的背景设置、图片控件,原创 2016-11-16 11:30:23 · 413 阅读 · 0 评论 -
这几条UI原则可以让你的设计提高(上)
1.视觉层次感要强烈如果让屏幕的视觉元素具有清晰的浏览顺序,那么通过视觉层次感来实现。如果用户每次都按照相同的顺序浏览同样的东西,而且视觉层次感不强烈的话,用户可能会不知道哪里才是应当停留的重点,最终只会让用户感到很乱很糟糕。在不断变更设计的情况下,很难让明确的层次关系保持下去,因为所有元素的层次关系都是相对的:要是所有元素都突出显示,最后就没有重点可言。如果要添加一个要特别突出的元素原创 2016-11-03 16:23:43 · 277 阅读 · 0 评论