- 博客(71)
- 收藏
- 关注
原创 讨论会3:Android用户研究及4.0界面设计分析
Android用户研究及4.0界面设计分析 PPT下载完成Android用户研究及4.0界面设计分析难度:★洪涛2012.04.10预习资料: http://developer.android.com/design/index.html官方设计规范问题:与IOS和WP对比,有哪些不一样;与原来没有规范的情况下,新增哪些普遍的设计原则。
2012-06-04 17:12:32 2676 1
原创 讨论会2:AsyncTask实现原理及性能调优
AsyncTask实现原理及性能调优 PPT下载完成AsyncTask实现原理及性能调优★★叶锋2012.03.06预习资料: AsyncTask、ThreadPoolExecutor源码. 预热问题:有人说Android自带的AsyncTask存在不稳定因素因此而弃用它而自己封装一个线程池,真的是这样吗?你知道AsyncTask的原理是怎么样的,和线程池又有什么关系?
2012-06-04 17:10:50 3755
原创 讨论会1:Android消息循环机制原理与实现
Android消息循环机制原理与实现 PPT 下载状态研讨专题技术难度主持专家研讨时间问题搜集备注完成Android消息循环机制的原理及源码分析★★杨喆2012.01.05预习涉及的源码部分:Looper、Handler、Message、MessageQueue的实现、ActivityThread的部分实现 预热问题:对于一个ActivityA,在其中start Activity B后,A中的消息
2012-06-04 17:09:14 3269
原创 深入Android系统【3】: Android UI的最基本组件 -- View 的设计原理及源代码分析
UI控件的最基本类View、ViewGroup树common operations: set properties focus listeners visibilityframework responsible for measuring, laying out and drawing views
2011-12-06 19:15:02 338
原创 Android Trick 14: proguard导致签名后的apk报错:ClassNotFoundException 的问题解决
发布在Android Market上的apk应用需要经过签名,签名的时候如果存在proguard.cfg并且在default.properties里边启动了proguard:proguard.config=proguard.cfg,那么在签名打包时会使用proguard对代码进行压缩、优化和混淆。在使用时遇到了一些问题,首先,随Android SDK自带的默认的proguard4.4?,签名后的a
2011-10-19 17:25:07 8761 1
原创 Android Trick 13: 改变一个apk的packagename的简单流程,就2个步骤
由于某些原因,要把PackageName改成一个新的名称。以前找不到流程,嫌麻烦最后没改。你可能回想着很多步骤,首先:1. 在包名上点右键-->refactor-->rename2. 在AndroidManifest.xml里运行Android="http://schemas.android.com/apk/res/android" package="com.newpakageName"
2011-10-14 11:04:21 9627 3
原创 深入Android系统【2】:launchMode (Instance)深入理解
前文Android Trick 4中已经对launchMode做了简介,近来使用中发现了一些理解不够的地方,特写出来和大家交流。standard、singleTop、singleTask、singleInstance。看SDK文档后,发现也不是很好理解上面几个
2011-10-13 20:14:21 4953 1
原创 一个Android工程师的2011年中总结及Q4计划
我这一年的成长非常快速,和Android的发展速度有的一拼了,时间总觉得不够用,本来打算年中时写一些感受和计划的,也突然发现到了现在才有时间整理一下。在已经过去的2011年的大半年日子里:Android的学习和研究借助2010年底正式参与的公司Android项目的
2011-10-08 16:24:49 6072 6
原创 Android Trick 12: 简单实现ImageView的加边框颜色的方法
对于一个ImageView,如果我们要加上边框,比如宽为3dp的灰色框,我们怎么做呢?有种方法,是自己定义一个MyImageView类,继承自ImageView,在其onDraw方法中画canvas。还有设置一个带有边框的背景图片的方法。这里给出一种简单方法,
2011-08-02 12:48:32 19218 5
原创 Android文档及学习资料整理 【至2011年7月】
学习参考网站Android Developers 官方开发网站,有权威的 Dev Guide 和 ReffrenceAndroid Source 官方Android全部开源源码网站,提供下载源码至本地的步骤Xda-developers Android版
2011-07-05 12:13:50 8067 6
原创 Android资料
学习参考网站Android Developers 官方开发网站,有权威的 Dev Guide 和 ReffrenceAndroid Source 官方Android全部开源源码网站,提供下载源码至本地的步骤Xda-developers Android版
2011-07-05 11:24:57 290
原创 Android Trick 11: 对Android中的AsyncTask进行函数化的封装,简洁调用
为了使UI在数据获取时不僵死,数据获取需要在新开Worker线程中进行,然后将返回结果在UI线程中进行读取并渲染页面。面对这种异步处理,到底如何写才简洁,先后面临过三种实现方式。首先是最原始的Java方式,new 一个Thread出来,将处理Runnable进去执行,执行完之后通过handler post到ui线程去更新界面。然后发现1.5后有了AsyncTask,非常好用,以后的项目中全部改
2011-06-16 17:46:00 9285 9
原创 Android应用开发笔记(13): Android移动应用界面的模板化设计
Android没有像苹果开发那样功能强大的界面开发工具,本身ADT插件提供的界面编辑能力有限,没办法刻画所有的界面情况;Android的界面xml代码可以进行人工修改,而Iphone的全部在图形界面上拖动完成,可没提供任何方式的代码级修改。Android的UI设计开发过程非常繁琐,容易出错,需要很长时间调节界面细节,开发过Android应用的人肯定深有同感。用几年前的网页设计来打个比方,开发Iph
2011-06-15 19:27:00 13504 24
原创 Android Trick 10: 一个Android应用的全局数据变量的访问..
在一个Android应用中,我们可以定义一个类,然后使用在类中定义静态成员的方式去创造全局能够访问的数据。如下代码所示:public class AERunTime { public static String text1 = "example";}在Activity中就可以使用 AERuntime.text1 访问。这是Java的通用方式,也可以稍微改变一下,使用单例模式g
2011-06-14 18:11:00 4525 1
原创 Android Trick 9: 关于Android程序中多余的“退出”功能...
已经有各种文章教你如何在Android程序的任何一个页面执行退出整个程序的功能,Android.os方法、restartPackage方法、system.exit方法,甚至有人为制造异常使程序退出的方法,令人害怕呀。其实,我们在Android model的基础上想一下,真得需要这个功能:让用户在任何时候,都能看到一个直接退出该应用的按钮吗?我认为不需要。Google官方人员在很早就表达了这个观点:Question: Does the user have a choice to kill the applic
2011-05-25 11:37:00 3979 3
原创 Android Trick 8: ProgressBar的圆形和长条形设置
默认的progresbar是圆形的旋转动画:长条型的style设置:style还有以下几个选项:style="?android:attr/progressBarStyleHorizontal"style="?android:attr/progressBarStyleLarge"style="?android:attr/progressBarStyleSmall"style="?android:attr/progressBarStyleSmallTitle"
2011-05-11 17:14:00 6855
原创 Android Trick 7: 把TextView中的文字添加阴影效果及Style的使用
android:shadowColor 阴影颜色android:shadowDx 阴影的水平偏移量android:shadowDy 阴影的垂直偏移量android:shadowRadius 阴影的范围大多数情况下,某一类的TextView控件需要统一的风格,如加阴影等,那么可以使用style。 然后在values文件夹下创建styles.xml文件,内容为:这样的最大优点是减低代码冗余度,在需要更改
2011-04-26 17:01:00 34578 7
原创 Android Trick 6: PendingIntent的重复问题,当新建的PendingIntent匹配上一个已经存在的PendingIntent时可能不会创建新的。
<br />Android中默认对PendingIntent的创建(如通过PendingIntent.getActivity方式)会进行优化检测,默认的情况下,新创建的PendingIntent如果和原先的基本一样,那么就会使用原先的PendingIntent。<br />这就导致在目前的项目中,一定间隔的重复给用户发送某类通知,其中带的Intent里的Extra内容不同,但是通知点击后传到一个Activity里的extra消息还是原来的。那么出现做这种问题可以这样解决,在创建PendingIntent时,
2011-04-19 13:48:00 8372
原创 Android应用开发笔记(12):Android应用的自动升级、更新模块的实现
我们看到很多Android应用都具有自动更新功能,用户一键就可以完成软件的升级更新。得益于Android系统的软件包管理和安装机制,这一功能实现起来相当简单,下面我们就来实践一下。首先给出界面效果:1. 准备知识在AndroidManifest.xml里定义了每个Android apk的版本标识:其中,android:versionCode和android:versionName两个字段分别表示版本代码,版本名称。versionCode是整型数字,versionName是字符串。由于
2011-04-06 09:59:00 58468 65
原创 Android应用开发笔记(11):Android上的蓝牙通信功能的开发:BluetoothChat例程分析
1. 概述Bluetooth是几乎现在每部手机标准配备的功能,多用于耳机mic等设备与手机的连接,除此之外,还可以多部手机之间建立bluetooth通信,本文就通过SDK中带的一个聊天室的例程,来介绍一下Android上的Bluetooth的开发。在Android1.x的时候,相关API非常不完善,还不能简单的使用Bluetooth开发,有一个开源项目可以帮助程序员使用、开发蓝牙,支持直接方法bluetooth协议栈。在Android2以后,框架提供了一些官方API来进行蓝牙的通信,
2011-04-06 09:52:00 18408 8
原创 Android Trick 5: 正则匹配任意字符,包括换行符的字符串
这是java正则的知识,最近开发android上也碰到了,匹配任意字符,包括换行符的字符串,发现使用 [.//n]* 就是不行,查了相关资料,以下可以:[//s//S]*[//w//W]*[//d//D]*在找到更好的方法前吗,暂时用之。
2011-03-25 17:44:00 4128
原创 Android Trick 4: Activity的android:launchMode (startard、singleTop、singleTask、singleInstance)
写在AndroidManifest.xml中,如:startard:标准方式,启动一个Activity就创建一个实例。singleTop:当Activity栈最顶层的A1启动另一个A1时,不会启动新实例。singleTask:在Task范围内只产生一个实例。singleInstance:在全局范围内只有一个,即使在不同apk中调用。onNewIntent:在singleTop下,不产生新实例直接再用某个Activity A1,需要得到来自哪个intent。public void onNewIntent(In
2011-03-22 13:52:00 6369 2
原创 Android Trick 3: GridView动态加载数据情况下,选中状态的实现
GridView使用AdapterView动态加载数据情况下,无论是在onCreate、Onstart、OnResume方法中调用getChildCount()均为0,这说明数据并没有在Activity最初启动后立即加载为GridView的子View,那如果要把GridView实现为Tab风格的菜单,是必须要调用它的状态选中的,如果在Activity中调用的话就会抛nullpointerexception了,那要怎么操作呢? /** * 构造菜单Adapter * @param menuName
2011-03-22 12:50:00 7648
原创 Android Trick 2: Android中的透明属性的设置
<br />ui设计时,需要指定某个元素的drawable时,有时候需要告诉Android我希望设置它为透明,偶然在源码中发现,就是以下这段代码:<br />android:background="@android:color/transparent"
2011-03-04 13:58:00 3909
原创 Android应用开发笔记(10):制作自定义背景Button按钮、自定义形状Button的全攻略
在Android开发应用中,默认的Button是由系统渲染和管理大小的。而我们看到的成功的移动应用,都是有着酷炫的外观和使用体验的。因此,我们在开发产品的时候,需要对默认按钮进行美化。在本篇里,笔者结合在应用开发中的经验,探讨一下自定义背景的按钮、自定义形状按钮的实现方法。 首先看实现效果截图:自定义背景的按钮目前有2种方式实现。1. 矢量图形绘制的方式矢量图形绘制的方式实现简单,适合对于按钮形状和图案要求不高的场合。步骤如下: (a) 使用x
2011-03-04 11:02:00 70293 47
原创 Android Trick 1: 使用View来制作专业的分隔线
如果更高效简单的实现界面中的分隔线呢? 这是从Google的某些应用的源代码中发现的。
2011-03-03 10:57:00 11132 3
原创 深入Android系统【1】 开机画面的修改
这一系列的文章将深入框架、系统底层,包含Framework/OS源码阅读、ROM修改。这一篇先从最简单的说起吧,准备写一下开机画面的修改。 一般地,Android开机画面分为两个:第一启动画面、第二阶段启动画面。第一启动画面需要在boot.img里修改
2011-03-02 13:38:00 5847
原创 Android应用开发笔记(9):应用中调用系统的搜索UI,Android Search Framework的初步了解
经过以下几个部分的实现和配置,Android内建的搜索框架就可以在你的应用中方便使用了。 1 在需要显示search ui界面的activity中调用search的代码 /** Handle "search" title-bar action. */ public void onSearchClick(View v) { onSearchRequested(); } /** do the search **/ @O
2011-02-16 22:39:00 6181
原创 Android应用开发笔记(8):在背景运行耗时任务,AsyncTask与ProgressDialog的使用
AsyncTask用在需要在ui线程中调用、在背景线程中执行耗时任务、并且在ui线程中返回结果的场合。下面就是一个在背景中运行的AsyncTask的实现DownloadDBTask, Android中实现了默认的进度提示对话框,即ProgressDialog,通过实例化和一些简单设置,就可以使用了。 private class DownloadDBTask extends AsyncTask { // 可变长的输入参数,与AsyncTask.exucute()对应
2011-02-11 18:38:00 7996
原创 Android应用开发笔记(7):构建自己的Android账户与内容同步机制,例程SampleSyncAdapter的分析
装过Android版的Facebook、lastfm的同学是否对于这些应用的功能感到惊喜,它们可以定期更新朋友的最新信息,将最新近况和心情短语集成入联系人中。这些应用全部是以Android2.0后的账户和同步机制为基础的。Google的例程中给出了名为SampleSyncAdpater的例子,通过分析该例子可以学会Android中的Account验证、同步Adapter的使用。详细例子代码可以看sdk samples中提供的源码,现在拿2.2中的版本来简要说明。首先是 class Authenticator
2011-01-17 10:57:00 24906 14
原创 Android应用开发笔记(6):Toast、Notification、Alarm, Android中的通知实现
启动AcStart,负责在创建时立即创建一个Notification在状态栏中,处理动作为后面的AcNotificationDealer。AcStart.javapackage jtapp.notifications;import android.app.Activity;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;impor
2011-01-14 20:08:00 3928
原创 Android应用开发笔记(5):Android中的Service使用
三 Service的生命周期 Service的生命周期方法比Activity少一些,只有onCreate, onStart, onDestroy我们有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。 1 通过startService Service会经历 onCreate -> onStart stopService的时候直接onDestroy 如果是调用者(TestServiceHolder)自己直接退出而没有调用stopService的 话,Servic
2010-12-22 10:58:00 2909
原创 Android应用开发笔记(4):再探Android多应用间数据共享机制,自定义ContentProvider
Android中的ContentProvider是一种多应用数据共享的机制,任何时候同一Provider只会创建一次,是由系统进行初始化和管理的。本文中将通过实现一个简单通讯录的插入、删除、查询操作来让你了解ContentProvider机制极其自定义过程。读过本系列第二篇(读取手机中通讯录)和第三篇(sqlite数据库操作)的读者可以发现,本文中实现的应用以这两篇内容为基础的。虽然,本文的MyContentProvider使用sqlite数据库进行持久化存储操作,包装后以ContentProvider机制
2010-12-18 13:42:00 3333
原创 Android应用开发笔记(3):SQLite数据库的插入删除查询操作
本文讲如何使用Android中内置的SQLite轻量数据库,Android SDK中已经对其进行了封装,使用起来相当简单。创建类继承SQLiteOpenHelper就可以将数据库的创建和应用版本更新后数据库的重建纳入自动管理中。本文实现一个简单的Sqlite数据库,存储人名和电话号码。效果如下截图:主Activity 类SqliteSample.java 代码:package jtapp.sqlitesamples;import android.app.Activity;import andro
2010-12-16 17:24:00 8758 4
原创 Android应用开发笔记(2):读取手机中的联系人信息(android.provider.ContactsContract)
上一篇中使用了打电话发短信的功能,但号码联系人信息我们还不知道。本篇开始讲如何从Android中得到本机联系人的信息。由于Android较快的版本升级,部分API已经发生了变化。本篇探究的通过ContentProvider机制获取联系人的API从Android2.0开始做了很大调整,原来的android.provider.Contacts类及其下相关类由android.provider.ContactsContract代替。原类体系标记为Deprecated(废弃),因为兼容的原因目前还存在,但不保证以
2010-12-14 19:52:00 11220 5
原创 Android应用开发笔记(1):调用打电话和发短信、收短信接口、发Email (Call, Dial, SMSManager, Broadcast, Email)
本文来自 http://blog.csdn.net/xjanker2,引用转载必须注明出处! 打电话和发短信可以说是最核心的应用了,本文就来阐述它的调用方法。可以分为直接调用--直接电话或短信发出,已经间接调用--进入拨号或短信撰写页面,等待用户确认内容后由用户发出. 先看代码效果截图: 先编写主界面Activaty,创建类CallAndSms作为为默认启动页 package jtapp.callandsms;import java.util.List;
2010-12-13 23:19:00 19921 7
原创 加入公司后正式研发的第一款大项目上线咯~~
http://vas.china.alibaba.com/callme/activity/index.htm
2010-12-08 15:42:00 2541
原创 Linux c 及 内核优化 培训 第二天课程笔记
<br />2010-11-27 second day lecture by JohnBull<br />Signal:<br /> 先执行signal,再执行alarm<br /> signalaction, sigsuspend()<br />Thread:<br /> X86访问内存是以cache行为单位<br /> 推荐《深入理解计算机系统》,当代计算机组成原理<br /> 信号安全和线程安全是不一样的,信号安全更难(同一线程内)<br /> pthread_cl
2010-11-27 22:25:00 1411
原创 RHEL5 CENTOS5上编译Android内核的步骤
<br />RHEL5 CENTOS5上编译Android内核的步骤 <br /><br /># uname -a<br />Linux chitty 2.6.18-92.1.22.el5 #1 SMP Tue Dec 16 12:03:43 EST 2008 i686 i686 i386 GNU/Linux<br /># more /etc/*release<br />CentOS release 5.2 (Final)<br /># yum install zlib-devel<br /># wget
2010-11-23 17:37:00 1445
转载 yum常用命令及常用源
转自:http://viong.blog.51cto.com/844766/278402rpm包的更新<br />檢查可更新的rpm包<br />#yum check-update<br />更新所有的rpm包<br />#yum update<br />更新指定的rpm包,如更新kernel和kernel source<br />#yum update kernel kernel-source<br />大規模的版本升級,與yum update不同的是,連舊的淘汰的包也升級<br />#yum upgra
2010-11-23 14:07:00 1730
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人