- 博客(95)
- 资源 (1)
- 收藏
- 关注
原创 Spring Boot环境搭建
Mongo DB参考资料https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/
2017-11-22 18:55:02 244
原创 SpringMVC学习-基础环境搭建
1.下载maven,解压,将bin加入环境变量2.下载tomcat,解压,运行。3.打开eclipse,新建maven project4.next选择maven-archetype-webapp,完成5.修改WEB-INF下web.xml "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http:/
2017-11-09 20:21:45 357
原创 设计模式(笔记)概述
设计模式(笔记)概述 目的解决类与相互通信的对象之间的组织关系,包括角色,职责,协作几个方面。好处应对变化,提高复用 概述面向对象设计模式是独立于编程语言的。不像算法技巧,可以照搬照用,是一些经验性的认识。首先我们要先了解什么是面向对象。 面向对象三大机制1. 封装:隐藏内部实现,隔离内部变化,外部接口是稳定的,但是内部的实现可
2014-05-01 13:04:06 1048
原创 设计模式(笔记)优先使用对象组合而不是类继承
优先使用对象组合而不是类继承问概述继承和组合都能达到一个代码复用的效果,但是类的继承通常是白箱复用,对象组合通常为黑箱复用。我们在使用继承的时候同时也就拥有了父对象中的保护成员,增加了耦合度。而对象组合就只需要在使用的时候接口稳定,耦合度低。 Is a和has a 我们怎么来判断是用继承还是组合呢?只有在对象之间关系具有很强的is a关系的时候才使用继承
2014-05-01 12:00:49 8384
翻译 不要通过Application Object或者其他全局静态变量来存放数据
不用通过Application Object或者其他全局静态变量来存放数据 翻译自:http://www.developerphil.com/dont-store-data-in-the-application-object/ 概述在我们的应用程序中,很多地方可能用到同一个数据。很多时候我们可能不想通过Intent在Activity之间传递或者持久化的存放这些数据来。
2014-04-24 10:57:08 5982 11
原创 在Eclipse中查看Android SDK源码
在Eclipse中查看Android SDK源码 很多时候我们需要查看Android SDK源码来更好的了解API和分析问题。 SDK 源码从Android4.0开始在AndroidSDK Manager中就为我们提供了SDK源码下载,打开Eclipse中的Android SDK Manager,选择其中的Sources For Android SDK,点击install pa
2014-04-22 23:40:54 10460 1
原创 Fragment(五)Transaction 源码分析
Fragment(五)Transaction 源码分析 概述这篇文章的简要分析了Activity中的Transaction和add,replace等操作以及backstack的工作原理。 分析transaction源码的原因是因为我在写一个测试代码的时候,发现replace并没有将之前所有的添加到某个container id上的Fragment全部移除掉,觉得很奇怪。
2014-04-22 21:36:13 14092
原创 Handling runtime changes(二)自己处理Configuration change
Handling runtime changes(二)自己处理Configuration change 自己来处理Configuration change如果在configuration变化的时候你不需要更新resource,比如横竖屏切换的时候不需要更新UI,并且你需要避免重建Activity造型性能上得问题,你可以申明你的Activity自己来处理这些Configuration的变
2014-04-22 08:41:16 1504
原创 Handling runtime changes(一)使用Fragment来保持之前的数据
Handling runtime changes在运行应用程序的时候,设备的一些configuration可能会发生变化(比如屏幕方向,键盘,语言等等)。当这些变化发生的时候,Android会重新启动你的Activity,这样就能让你的应用程序根据新的configuration显示正确的信息。Android提供了onSaveInstance来保存一些状态信息,从而在重新启动Activity的时
2014-04-21 21:13:51 2652
原创 Fragment(四)Fragment生命周期分析
Fragment(四)Fragment生命周期分析 例子一: 假设我们有一个Activity的Layout中有两个layout: xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent"
2014-04-21 21:11:11 6782
翻译 Fragment(三)例子
Fragment(三)例子翻译自http://developer.android.com/guide/components/fragments.html例子这里有一个例子用到了连个Fragment。一个Fragment用来显示莎士比亚剧的名字,另外一个显示这个剧的简介。这个例子也演示了怎么根据不同的屏幕来创建不同的layout。 Main Activity用平常的方式在onCr
2014-04-21 21:09:53 2957
翻译 Fragment(二)使用Fragment
Fragment(二)使用Fragment翻译自http://developer.android.com/guide/components/fragments.html 创建Fragment要创建一个Fragment,你需要创建一个Fragment的子类。Fragment的代码很像Activity。他有一些和Activity很像的回调
2014-04-21 21:03:39 11177
翻译 Fragment(一)概述
Fragment(一)概述翻译自http://developer.android.com/guide/components/fragments.html 概述Fragment代表了一个Activity中得一部分UI。你可以在Activity中联合使用多个Fragment来建立multi-panelUI,也可以在多个Activity中重用Fragment。你可以把Fragment想象
2014-04-21 20:27:55 1690
原创 Dialog和DialogFragment
Dialog和DialogFragment 概述从Honeycomb开始引入了Fragment来支持重用一部分UI。同时Activity的showDialog和dismissDialog方法不建议再被使用了,而我们应当使用DialogFragment。 Dialog我们先看我们是怎么来使用一般的dialog的。在这里我们显示一个最简单的AlertDialog。在点击按
2014-04-19 17:48:14 3030
翻译 Android Loaders(三)实现一个Base Loader
Android Loaders(三)实现一个Base Loader参考翻译自:https://docs.google.com/presentation/d/1_5puFz6kUK1cSYvTmJbvQFYpgj8LXZECBrn65w62UKk/edit#slide=id.p 概述support提供了三个类:Loader(最基本的Loader抽象类),AsyncTaskLoader
2014-04-19 10:29:10 3201
翻译 Android Loaders(二)Loader的使用
Android Loaders(二)Loader的使用参考翻译自:https://docs.google.com/presentation/d/1_5puFz6kUK1cSYvTmJbvQFYpgj8LXZECBrn65w62UKk/edit#slide=id.p 使用LoaderManager1. 简单的API让你的Activity/Fragment可以和Loader
2014-04-19 10:26:53 6486
翻译 Android Loaders(一)概述
Android Loaders(一)概述参考翻译自:https://docs.google.com/presentation/d/1_5puFz6kUK1cSYvTmJbvQFYpgj8LXZECBrn65w62UKk/edit#slide=id.p 从Thread到LoaderThreadfinal Handler handler = new Handler(newHandl
2014-04-19 10:25:29 2113 1
翻译 Android 后台任务(七)内存泄露
Android 后台任务(七)内存泄露翻译自:http://www.androiddesignpatterns.com/2013/01/inner-class-handler-memory-leak.html 考虑下面的代码: public class SampleActivity extends Activity {privatefinal Handler mLeakyH
2014-04-17 19:21:41 1599
翻译 Android 后台任务(八)内存泄露
Android 后台任务(七)内存泄露翻译自:http://www.androiddesignpatterns.com/2013/04/activitys-threads-memory-leaks.html该文章以Thread为例,但是同样适用于AsyncTask 要再Activity的生命周期处理好一个长时间运行的任务而不导致内存泄露是有难度的。设想有下面的Activity代码,
2014-04-17 17:52:52 1227
翻译 Android 后台任务(六)IntentService
Android 后台任务(六)翻译自:http://blog.stylingandroid.com/archives/833 IntentService,就像我之前文章中提到的,是个很好的方式去处理一个任务,然后关闭这个服务。在Mannifest中注册一个或者多个启动这个service的Intent Filters,我们也可以在代码中调用startService来启动他。让我们来实现一
2014-04-17 17:51:40 1172
翻译 Android 后台任务(五)Service
Android 后台任务(五)翻译自:http://blog.stylingandroid.com/archives/833 最后我们来看看如何使用Android的services. Service是Android核心的一个东西,但是经常被滥用,所以我们现在来再次理解下什么是Service,以及我们怎么来很好的使用他。我喜欢这样理解Service,他是一个不需要与Activit
2014-04-17 17:50:39 1227
翻译 Android 后台任务(四)Loader
Android 后台任务(四)翻译自:http://blog.stylingandroid.com/archives/833 在前面的文章中我们学习了AsyncTask的使用,也了解了新手使用他的时候的问题和潜在的内存泄露问题。这篇文章我们讲讲Honeycomb Loader的使用。 在开始之前,需要指出虽然Loader在HoneycombAPI11才引入,但是我们也可以在老的
2014-04-17 17:49:17 1195
翻译 Android 后台任务(三)AsyncTask
Android 后台任务(三)翻译自:http://blog.stylingandroid.com/archives/833前面我们使用了线程来让耗时操作脱离UI线程执行,也介绍了一些在工作线程中如何再去更新主线程的方法。但是当我们为了频繁的在UI线程和工作线程之间切换加了很多Runnables时,我们的代码变得越来越难看。这篇文章,我们来看看AsyncTask怎么来提供一个更清晰的更新U
2014-04-17 17:48:10 1013
翻译 Android 后台任务(二)Thread And Handler
Android 后台任务(二)翻译自:http://blog.stylingandroid.com/archives/833 在之前的文章中我们讲解了为什么我们尽量不要在UI线程中处理一些很慢的事情来阻塞UI线程。这篇文章我们关注如何来做。 最简单的处理办法就是使用java线程。将任务处理放在一个线程中是这样的简单。 new Thread( new Runnable()
2014-04-17 17:46:20 1133
翻译 Android 后台任务(一)概述
Android 后台(一) 翻译自:http://blog.stylingandroid.com/archives/833 我们专注于提高界面美化和用户体验。其中很重要的一点就是当用户点击/触摸界面上某个元素的时候没有反应,这会让用户感到灰心。 Android是多线程的。当Android 应用启动的时候,系统为应用程序创建了一个主线程。当你用debug模式运行你的程序的时候
2014-04-17 17:45:11 916
原创 Android Performance(0) OverView
Android Performance(0) OverView 下面列出提高程序performance的一些工具的简要介绍 StricMode检查代码中是否在有在主线程做一些耗时操作(比如主线程里面读写磁盘,网络请求等)和检查是否有未释放的对象等。TraceView分析代码耗时,函数被调用次数等是否正常
2014-04-15 17:13:48 877
翻译 Android支持多屏幕(5)Additional DensityConsiderations
Android支持多屏幕(5)Additional DensityConsiderations这一节我们更多的是描述Android是如何在不同的屏幕上缩放图片的,以及你怎样控制图片在不同的屏幕密度上的显示。这些信息对于一般的应用程序不是很重要,除非你在不同的屏幕密度的设备上遇到了问题,或者你的程序操作了graphics。 为了更好的理解你怎么支持多种不同的屏幕密度,你应该理解系统是按照
2014-04-15 14:01:59 737
翻译 Android支持多屏幕(7)在不同的屏幕上测试你的程序
Android支持多屏幕(7)在不同的屏幕上测试你的程序 参考自:http://developer.android.com/guide/practices/screens_support.html在发布你的应用程序之前,你需要在不同的屏幕大小和密度测试你的应用程序。我们可以在创建AVD的时候指定屏幕大小,密度和分辨率 下表是Android sdk支持的不同的屏幕配置
2014-04-15 13:54:56 1246
翻译 Android支持多屏幕(6)dp转换成px
Android支持多屏幕(6)dp转换成px参考自:http://developer.android.com/guide/practices/screens_support.html 很多时候,你可能需要将dp转换成px。试想,当用户的手指在mdpi屏幕上移动16个像素点得时候就被认为是scroll或者是fling。即16pixels/160dpi,也相当于大约2.5mm的距离。但是,
2014-04-15 13:52:20 1154
翻译 Android支持多屏幕(4)Best Practices
Android支持多屏幕(4)BestPractices 参考自:http://developer.android.com/guide/practices/screens_support.html 支持多种屏幕是为了让程序在多个Android设备上看起来都漂亮。前面的章节我们介绍了Android是如何适应不同屏幕的,介绍了我们怎么为不同的屏幕来设计不同的UI。这一节我们将介绍
2014-04-14 17:02:07 826
翻译 Android支持多屏幕(3)Declaring Tablet Layouts for Android 3.2
Declaring Tablet Layouts for Android 3.2在第一代运行Android 3.0的平板上,正确的声明layout的方式是把这些layout文件放到xlarge限定符下面(比如res/layout-xlarge/)。为了适应其他种类的平板和屏幕大小-比如7英寸平板-Android3.2引入了一种新的方式来限定更精确的屏幕大小。这个新技术是基于你的layout对空
2014-04-14 13:39:40 1378
翻译 Android支持多屏幕(2)How to Support Multiple Screens
Android支持多屏幕(2)Howto Support Multiple Screens 翻译自:http://developer.android.com/guide/practices/screens_support.html 概览Android能支持多屏幕的基础就是它又能力根据当前的屏幕来画出合适的layout和图片资源。系统已经为你处理了很多事情,包括帮助你根据当
2014-04-14 11:17:07 1777
翻译 Android支持多屏幕(1)Overview of Screen Support
Android支持多屏幕(1)Overview of Screen Support转载请注明来自:翻译自:http://developer.android.com/guide/practices/screens_support.html Android运行在各种不同屏幕大小和密度的设备上。对于应用程序来说,不同的设备,Android系统都提供了一致的开发环境,并且已经为我们处理
2014-04-13 22:56:29 2303
原创 Android Performance(8) MAT(整理)
Android Performance(8) MAT虚拟机回收机制 1. 引用计数法(Reference Counting Collector) 引用计数法是唯一没有使用根集的垃圾回收的法,该算法使用引用计数器来区分存活对象和不再使用的对象。一般来说,堆中的每个对象对应一个引用计数器。当每一次创建一个对象并赋给一个变量时,引用计数器置为1。当对象被赋给任意变量时,引
2014-04-13 13:46:12 1405
翻译 Android Performance(7) Investigating Your RAM Usage
Android Performance(7) Investigating Your RAM Usage 我们在开发移动设备上得App的时候,必须考虑RAM的使用情况,虽然Android有垃圾回收机制,但是这并不意味着你不需要关心内存分配和释放的问题。为了提供优秀的用户体验,你的程序不必消耗没有必要的内存。 虽然你已经有了一些管理APP内存的经验,但是在开发过程中你还是会或多或少的遇
2014-04-13 13:44:31 2408
原创 Android Performance(6) Pixel Perfect
概述Pixel Perfect用来检测UI布局。他会显示当前屏幕的一个放大的图片,l 你可以从像素级别来检查你的排版布局。l 你也可以根据一个设计好的布局文件图片来排版布局。点击load an image to overlay the screenshot就可以了。功能你可以从window->open perspective->other->pixel perfect来
2014-04-12 19:42:09 3045
原创 Android Performance(5) 模拟屏幕
1. 我们可以用adb shell am来模拟我们需要的屏幕比如 ./adb shell am display-size 300x4802. 也可以模拟屏幕密度,但是不知道为什么我的机器上没有这个命令,有知道为什么的同学告知下,谢谢。./adb shell am display-density 80
2014-04-12 18:42:53 1141
原创 Android Performance(4) Overdraw
Android Performance(4) Overdraw概述Overdraw就是你在某个界面上再画某些东西,比如你在一个LinerLayout上面添加一个TextView,那么TextView就是在LinerLayout上面再画了一次。Overdraw的存在是正常的,但是为了使我们的APP性能更好,我们要避免一些不必要的OverDraw。一般来说重画两次是正常的,意思就是说一个像素点
2014-04-12 18:16:47 3828
原创 Android Performance(3) Hierarchy Viewer
Android Performance(3) Hierarchy Viewer 概述Hierarchy Viewer允许你调试和优化你的UI界面,他向开发人员展示一个视图的层次结构,以及每个laytout中节点的performance信息。 功能介绍打开Hierarchy View:Window->Open Perspective->Other..->HierarchyVi
2014-04-12 17:19:59 2024
原创 Android Performance(2) Traceview
Android Performance(2) Traceview概述TraceView可以用来调试你的程序,用来分析你程序的performance。 生成trace文件1. 当运行程序的时候,进入ddms,选中需要trace的进程,然后点击下图红框的位置就启动了trace,再点一下就会停止,并且自动打开traceview面板。2. 在代码中使用D
2014-04-12 14:01:07 1591
dos final 教程
2013-02-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人