自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 达尔文《物种起源》

最近稍微了解了一下达尔文,

2014-07-06 11:07:53 1112

原创 sharedUserId

如果两个apk在manifest中声明相同的sharedUserId,那么就可以peichengchen

2014-04-22 21:39:49 832

原创 读书笔记

1.  Getting Started1.1  Building YourFirst App1.1.1  Createing anAndroid Project1.1.2  Running YourApp1.1.3  Building aSimple UI以上三节没什么可说的1.1.4  Start AnotherActivityAndroid:textIsSelect

2014-02-19 23:03:30 1524

原创 android:protectionLevel

定义自己的permission的时候要写明android:protectionLevel,这个属性有四个值。分别是:normal:这个用于比较低风险的权限,如果一个权限的android:protectionLevel设置为normal,当某个app申请这个权限时system会自动授予app权限,而不用询问用户。dangerous:用于高风险的权限,例如可能访问私人数据(例如短信,联

2014-02-07 21:51:56 3160

原创 FileStorge相关的几个intent

1,取回一个特定类型的file如果想发请求请用户选择一个文件(例如文档或者图片),然后再把文件引用返回来,可以使用ACTION_GET_CONTENT。返回的文件引用是临时的,只在这个activity的当前生命周期有用。这个intent也允许用户创建一个新的file返回,例如不是选择一个现有的图片,而是新拍一张图片。用户选择的文件的Uri会返回到onActivityResu

2014-01-22 23:12:24 965

原创 Synchronized和ReentrantLock

import java.util.LinkedList;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;public class StudyJava { Buffer mBuffer = new Buffer(5);; /** * @param

2014-01-18 17:39:10 547

转载 Future和FutureTask

public interface Future Future 表示异步计算的结果。Future有个get方法而获取结果只有在计算完成时获取,否则会一直阻塞直到任务转入完成状态,然后会返回结果或者抛出异常。 Future 主要定义了5个方法: 1)boolean cancel(boolean mayInterruptIfRunning):试图取消对此任务的执行。如果任务已完成

2014-01-18 17:02:15 506

原创 GridLayout和GridView的区别

GridView是一种适配器布局,它的继承关系是ViewGroup-->AdapterView-->AbsListView-->GridView,他是从一个adapter中取出内容填充到GridView中的每一个子View。GridLayout是一个布局,它大大简化了对复杂布局的处理,提高了性能。他直接继承自ViewGroup,和LinearLayout这种是类似的。我感觉GridVi

2014-01-12 22:03:52 16278 2

原创 Navigation Drawer

第一步,实现layout。它的root必须是一个DrawerLayout,这个layout定义在android.support.v4.widget下面,如果找不到就用SDK manager更新一下support lib。然后为DrawerLayout添加两个child view,一个定义显示内容的区域,一个定义从左边划出的那个菜单。例如<android.support.v4.wid

2013-12-15 19:17:58 697

原创 Android Support Library

Android support library是google以jar包形式提供的一个代码库,里面包含一些向后兼容的framework API以及一些只有在这个library中才提供的feature。support library的jar文件名字中有一个版本信息,它指明了下后兼容到哪个版本,例如android-support-v4.jar说明向后兼容到level 4(android 1.6),即

2013-12-15 14:37:34 2274

原创 Alarm

android的alarm机制可以让你在app的生命周期之外做一些基于时间的操作,例如周期性的更新mail,天气信息等等。实作的时候一般是通过alarm manager在具体的时间点或者某一个时间间隔发出intent或者broadcast,另一侧在receiver中执行相关的操作。创建alarm在创建alarm的时候需要确定alarm的类型,alarm的时间或者时间间隔(如果你指定的时

2013-12-08 15:04:33 765

原创 如何让手机保持唤醒状态

手机的正常行为是闲置一段时间后屏幕变暗,然后熄灭,然后CPU关闭。有些场景需要改变这种行为,例如播放视频时希望屏幕不要熄灭;正在进行一些后台操作比如下载东西的时候希望CPU不要停止;保持屏幕点亮:在activity中执行如下code(不要在service或者其他组件调用)getWindow().addFlags(WindowManager.LayoutParams.FL

2013-12-08 11:35:04 4570

原创 LocalBroadcastManager

LocalBroadcastManager用于发送接收那些只用于本app内部组件的Broadcast。可以用于IntentService向启动它的组件发送结果在IntentService中发送broadcast:LocalBroadcastManager.getInstance(context).sendBroadcast(intent);在另一侧接收broad

2013-12-08 10:09:38 641

原创 ThreadPoolExecute

如果想只执行一次可以用普通的thread;如果想重复执行,但是同一时间执行一个可以使用IntentService;如果要同时执行多个可以使用ThreadPoolExecute,因为可以同时执行多个实例所以里面的方法必须是线程安全的,合理的使用synchronized 。一般情况下每一种runnable使用一个ThreadPool,这个pool只有一个实例。创建ThreadP

2013-12-07 21:23:39 2971

原创 performance——省电

有很多操作,例如周期性的和服务器Sync(Email,Cloud Service),周期性的更新下载进度,等等是比较耗电的。因此可以根据电量,是否充电,Dock状态,网络连接状态这些条件来调整更新频率,以便节省电量。和电池相关的几个Broadcast,都是battery manager发出的:1, ACTION_BATTERY_CHANGED这是个sticky broadcast,并且

2013-12-07 12:10:55 618

原创 Performance——layout相关

1,layout层级不要嵌套太深,嵌套层级深了加上使用layout_weight会显著降低performance,主要是影响measure时间2,复用layout可以使用                 layout_width="match_parent"                 layout_height="wrap_content" />中的属性可以重写xxx.x

2013-12-05 21:53:53 957

原创 Performance——manage app's memory

RAM:虽然虚拟机可以帮你做垃圾回收,但是程序员最好还是要做到以下几点:1,避免memory leak,通常是因为使用一些全局性质的变量引用了某个Object。2,在合适的地方主动释放Object的引用,当然有些变量如块作用域中的局部变量GC可以直接帮你回收。因为android不提供内存的swap space,所以释放内存的唯一途径就是把Object的引用置为null,唯一的例

2013-12-03 22:08:12 618

原创 如何有效使用bitmap

使用bitmap容易遭遇out of memory exception,主要由以下三个原因:每个android app分配的内存有限;bitmap比较耗费内存,例如1300w像素图片,每个像素可能占4个字节;有些view group例如list view,grid view中可能包含很多bitmap。综上,使用bitmap时主要考虑节省内存,方式主要是减小bitmap的大小

2013-11-24 22:02:54 745

原创 在android中拍照录像

1,在manifest中声明使用摄像头,也可以添加android:required="false"来说明希望有这个设备,但不是必须的。如果是这样在code中要检查是否有这个设备hasSystemFeature(PackageManager.FEATURE.CAMERA)2,拍照需要发送的action:  MediaStore.ACTION_IMAGE_CAPTURE

2013-11-23 10:57:11 684

原创 Android中的声音控制

先说几个概念,第一个是Audio Stream,Audio Stream可以认为是一个可以单独进行声音控制的通道。music,alarm,notification,电话铃声,系统声音等等都有自己独立的Audio Stream(普通app使用STREAM_MUSIC ),可以分别调整音量的大小,例如你进入一个app可以用音量键调整它的声音大小,如果这个app不会播放声音那调整的就是手机铃声。

2013-11-21 22:30:18 2102

原创 android中share文件

例如app1请求app2的文件,1,app1发intent启动app2的一个activity显示文件列表2,user选择一个文件3,app2的activity返回文件的uri给app1关键点:app1发送intent部分:这部分非常简单,发送ACTION_PICK即可,最好带上type,例如setType("image/*");app2提供文件的uri:

2013-11-18 22:37:55 3143

原创 ArrayAdapter和自己创建BaseAdapter用于ListView的示例

ArrayAdapter非常简单,但是用于ListView的时候限制太多,一般只用于显示单行的文本。最常见的是ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, mContent);mContent是一个String[],把字符串放进default layout android

2013-11-17 21:42:13 653

原创 发送数据给其他activity

ACTION_SEND:没有指名送给谁,一般用Intent.chooser把它包起来,这样会询问user到底发给谁。ACTION_SENDTO:在data的uri中指明了发给谁。他们都可以putExtra(k,v);这个k必须是对方能识别的,否则这些内容就被忽略了setType():Type其实是string,对端拿出来也当做string操作。可以支持类似image/*,*/*这种类型

2013-11-17 11:02:03 773

原创 非UI thread更新UI的方式

Android的UI thread并非线程安全,因此所有UI的操作必须在UI thread完成。主要方法有:1,使用AsyncTask,AsyncTask中的onXxxxx callback都在UI thread中执行,后台任务在doInBackground方法中执行完成后会把结果传递给doPostExecute,可以在doPostExecute中更新UI2,使用Handl

2013-11-16 15:21:08 967

原创 BB和modem

我本硕一直是计算机专业搞软件的,刚入职的时候分不清BB和modem,总看有人在论坛上说AP+BB,有的时候又说AP+modem。AP很清楚就是应用处理器,modem也很清楚就是调制解调器,但是BB基带对我来说真挺陌生的。其实基带中就包含了modem,另外还包含一个专门的处理器和信道编码器等等,从传统意义上来说手机芯片最重要的就是AP+BB,而基带中最重要的就是modem,所以有人会说A

2013-11-16 13:00:12 1408

原创 感悟和读书笔记20131110

中国的移动互联网最初的商业模式是从日本学来的,也就是移动梦网。中移动的移动梦网就像一个超市,各个ISP(internet service provider)就像是商家,负责给超市供货。在这个超市里面用户可以下载壁纸,手机铃声等等,靠流量和信息费赚钱大家分成。进入智能手机时代各种app store兴起,原有的模式已经不在适用,目前很多互联网巨头拼命把自己在PC互联网的产品移植到手

2013-11-10 22:34:42 679

原创 我是不是该换个工作

我是不是该换个工作移动互联网从公司层面大概可以分为三大层:网络层,终端层,应用层网络层是是指3G,4G,WiFi之类的,多以通信设备制造商为主,感觉是夕阳产业而且我也没有兴趣。终端层指的是手机或者平板电脑相关的公司,有技术含量的是芯片和OS,目前我的尴尬之处在于公司是个芯片公司,而我是个做软件的,进入android时代之后在芯片公司作软件感觉就像是google的客户支持工程师,非常无聊

2013-11-10 14:33:11 1124

原创 感悟和读书笔记20131109

1,移动互联网真正要想普及那么无线网络最好满足三个条件:速度快,覆盖范围广,资费低。从目前北京的情况看这几个条件都很一般:速度一般,覆盖范围在城区还有断档,资费贵。3G网络无论是TD、WCDMA还是CDMA2000都只能满足刷刷微博,看看网页的要求,要想看视频就不行了,而且在地铁上还经常网速巨慢,比较费流量的操作还是依赖于WiFi。相信未来几年这几方面会有提高,随着基础设施的提高必然会

2013-11-10 14:14:55 745 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除