- 博客(48)
- 资源 (1)
- 收藏
- 关注
原创 让人看出强势你就输了
当我是菜鸟一只的时候,曾经被发配到远远的一个大客户那里常驻服务。那家公司里有位神一样的传奇人物,我记得很清楚,当年她才三十六岁,已经官至SVP,工科女,技术人员出身,营销总监做了七年,我认识她的时候正调整分工,接管大供应链系统。她并不漂亮,但很顺眼,朴素得令人发指,一年四季永远穿各式白衬衫配不同颜色的西装裙低跟鞋。并不特别强势或者犀利,也没有特殊的亲和力或者幽默感,就是挺自然平常的一个人。没人
2015-01-29 09:57:37 1302 2
转载 Linux 工作队列和等待队列的区别
work queue是一种bottom half,中断处理的后半程,强调的是动态的概念,即work是重点,而queue是其次。wait queue是一种「任务队列」,可以把一些进程放在上面睡眠等待某个事件,强调静态多一些,重点在queue上,即它就是一个queue,这个queue如何调度,什么时候调度并不重要。对这2个容易混淆的队列做简单概念上的区别,怎么用? 等待队列在内
2015-01-27 15:48:27 546
转载 linux设备驱动程序中的阻塞机制
阻塞与非阻塞是设备访问的两种方式。在写阻塞与非阻塞的驱动程序时,经常用到等待队列。一、阻塞与非阻塞 阻塞调用是指调用结果返回之前,当前线程会被挂起,函数只有在得到结果之后才会返回。 非阻塞指不能立刻得到结果之前,该函数不会阻塞当前进程,而会立刻返回。 对象是否处于阻塞模式和函数是不是阻塞调用有很强的相关性,但并不是一一对应的。阻塞对象上可以有非阻塞的调用方式,我们可以通过
2015-01-27 15:41:12 958
转载 Android 开发之 ---- bootloader (LK)
LK是什么 LK 是 Little Kernel 它是 appsbl (Applications ARM Boot Loader)流程代码 ,little kernel 是小内核小操作系统。 LK 代码 在 bootable/bootloadler/lk 目录下 LK 代码结构 +app
2015-01-26 18:07:41 617
原创 在江湖混要养成的10个好习惯
“人之患在好为人师”,我也特烦教导别人。一来是认为每个人的情况不一样,很难一概论之。那些号称他的成功可以复制的,不是为了骗你钱买书的,就是教你抄袭造假骗人的。二来我光讲、你光听,基本没用。我好好讲《易筋经》,你好好听,你还是不会少林武功。所以,你们想听我讲,刚入职场应该注意什么,让我为难了,想来想去,还是说说好习惯。在江湖上混,养成好习惯第一,其他就在你们各自的特质和造化了。第一个习惯是及
2015-01-26 10:45:47 946
原创 ContentProvider介绍
1. 什么是ContentProviderandroid系统中数据都是私有的,通过ContentProvider进行程序间数据的交换.一个Content Provider类实现了一组标准的方法接口,从而能够让其他的应用保存货读取此Content Provider的各种数据类型.也就是说,一个程序可以通过实现一个Content Provider的抽象接口将自己的数据暴露出去,外界可以通过Co
2015-01-23 10:41:15 700
原创 SQLiteDataBase
什么是SQLiteDataBase ?一个SQLiteDatabase 的实例代表了一个SQLite的数据库,通过SQLiteDatabase实例的一些方法,我们可以执行SQL语句,对数据库进行增/删/查/改 的操作.需要注意的是,数据库对于一个应用来说是私有的,并且在一个应用中,数据库的名字也是唯一的.什么是SQLiteOpenHelper ?这是一个SQLite的辅助类
2015-01-22 16:16:22 774
原创 sharedPreferences
使用sharedPreferences保存key-value的步骤如下:(1)使用activity类的getSharedPreferences方法获得SharedPreferences对象,其中存储key-value的文件的名称由getSharedPreferences方法的第一个参数指定.(2)使用SharedPreferences接口的edit获取SharedPreferences.E
2015-01-22 14:06:38 566
转载 如何不工作了还有源源不断的收入
导语 :拥有金山跟银矿,其实不值得羡慕。与其选择万贯家财,倒不如选择一个会持续冒出钱的杯子。很多人害怕上班的收入不确定,上班族急于寻找双薪,下班之后还要辛勤工作,以为这样就可以远离贫穷。 其实,无论兼做几份工作,单靠增加工时获得的收入永远无法让你摆脱贫穷。 想致富,我们必须记住几个原则: 第一,凡是不可持续的,就不值得羡慕。
2015-01-22 10:36:33 998 5
转载 Notification简介
Notification简介 Notification看名字就知道,是一个和提醒有关的东西,它通常和NotificationManager一块使用。具体来说,其主要功能如下。 1.NotificationManager和Notification用来设置通知 通知的设置等操作相对比较简单,基本的使用方式就是新建一个Notification对象,设置好通知的各项参数,然后使用系统后台
2015-01-20 16:00:31 1146
转载 工作队列workqueue
一、workqueue简介workqueue与tasklet类似,都是允许内核代码请求某个函数在将来的时间被调用.每个workqueue就是一个内核进程。workqueue与tasklet的区别: 1.tasklet是通过软中断实现的,在软中断上下文中运行,tasklet代码必须是原子的 workqueue是通过内核进程实现的,就没有上述限制的,最爽的是,工
2015-01-19 15:53:15 788
原创 android之dialog
什么是Dialog?Dialog类,是一切对话框的基类.需要注意的是,Dialog类虽然可以在界面上显示,但是并非继承于View类,而是直接从java.lang.Object开始构造出来的.类似于Activity, Dialog也是有生命周期的,它的生命周期由Activity来维护.Activity负责生成,保存,恢复它.在生命周期的各个阶段都有一些回调函数供系统反向调用.在Act
2015-01-19 10:19:31 745
原创 onCreateOptionsMenu()方法
这个方法负责生成menu,它是一个回调方法,当按下手机设备上的menu按键的时候,android系统才会生成一个包含两个子项的菜单.1)在onCreateOptionMenu()方法里边,首先得到super函数调用后的返回值.并且在方法的最后进行返回.2)调用menu.add()给menu添加一项.代码如下:public boolean onCreateOptionMenu(Men
2015-01-17 10:33:39 6416
转载 ProgressBar的使用
页面上现有ProgressBar控件progressBar,请用书写线程以10秒的的时间完成其进度显示工作。publicclass ProgressBarStu extends Activity {private ProgressBar progressBar = null;protected void onCreate(BundlesavedInstanceState) {super
2015-01-16 16:41:08 1175
转载 谈谈Android的IPC(进程间通信)机制
一说明 Android系统最常见也是初学者最难搞明白的就是Binder了,很多很多的Service就是通过Binder机制来和客户端通讯交互的。所以搞明白Binder的话,在很大程度上就能理解程序运行的流程。我们这里将以MediaService的例子来分析Binder的使用:l ServiceManager,这是Android OS的整个服务的管理程序l
2015-01-16 11:59:25 1401
转载 Handler,Thread和Runnable这三个类之间的关系
Android的CPU分配的最小单元是线程,Handler一般是在某个线程里创建的,因而Handler和Thread就是相互绑定的,一一对应。而Runnable是一个接口,Thread是Runnable的子类。所以说,他俩都算一个进程。HandlerThread顾名思义就是可以处理消息循环的线程,他是一个拥有Looper的线程,可以处理消息循环。与其说Handler和一个线程绑定,不如说H
2015-01-16 11:47:28 897
转载 Android性能优化——工具篇
Android性能优化是Android开发中经常遇见的一个问题,接下来将对Android性能优化方面的知识点做一个简单的梳理和总结,将从工具和代码两方面进行梳理。所谓工欲善其事必先利其器,本文首先来看一下Android性能优化有哪些得力的工具。1、TraceViewtraceview是Android SDK中自带的一个工具,可以对应用中方法调用耗时进行统计分析,是Android
2015-01-16 09:58:51 531
转载 android 使用DDMS
DDMS 的全称是Dalvik Debug Monitor Service,它为我们提供例如:为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息、Logcat、广播状态信息、模拟电话呼叫、接收SMS、虚拟地理坐标等等。如何启动 DDMSDDMS 工具存放在SDK – tools/路径下,启动DDMS方法如下:直接双击ddms.bat运行;在Eclipes调试程序的过程中
2015-01-16 09:49:38 2532
转载 ListView中getChildAt(index)的使用
1.原理在很多时候ListView列表数据不需要全部刷新,只需刷新有数据变化的那一条,这时可以用getChildAt(index)获取某个指定position的view,并对该view进行刷新。注意:在ListView中,使用getChildAt(index)的取值,只能是当前可见区域(列表可滚动)的子项!即取值范围在 >= ListView.getFirstVisiblePo
2015-01-15 17:58:58 557
转载 Android 中的接口回调
在Android中到处可见接口回调机制,尤其是UI事件处理方面。举一个最常见的例子button点击事件,button有一个点击方法onClick(),我们知道onclick()是一个回调方法,当用户点击button就执行这个方法。在源码中是这样定义的:[html] view plaincopy//这个是View的一个回调接口 /** *
2015-01-15 17:35:48 629
转载 Android之Adapter用法总结
Android之Adapter用法总结1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(List View,Grid View)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系:Android中所有的Adapter一览:
2015-01-15 15:47:39 486
转载 android:layout_gravity 和 android:gravity 的区别
gravity 这个英文单词是重心的意思,在这里就表示停靠位置的意思。android:layout_gravity 和 android:gravity 的区别从名字上可以看到,android:gravity是对元素本身说的,元素本身的文本显示在什么地方靠着换个属性设置,不过不设置默认是在左侧的。android:layout_gravity是相对与它的父元素说的,说明元素显示在父元素的什
2015-01-14 15:30:09 436
转载 Android LayoutInflater详解
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。具体作用:1、对于一个没有被载入或者想要动态载入的界面,都需要使用Layou
2015-01-14 15:18:57 468
原创 bt.setOnClickListener(new OnClickListener()报错java.lang.nullpointerException
代码没有提示红叉,运行时却会报错.import android.app.Activity;import android.app.Fragment;import android.content.Intent;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;impo
2015-01-14 14:17:21 3143 3
转载 利用getLayoutParams()方法和setLayoutParams()方法
利用getLayoutParams()方法 和 setLayoutParams()方法 重新 设置 控件的 布局,1、首先利用getLayoutParams()方法,获取控件的LayoutParams。 eg:LayoutParams laParams=(LayoutParams)imageView.getLayoutParams();2、设置该控件的layoutPa
2015-01-14 10:52:15 772
转载 各种Adapter的用法
同样是一个ListView,可以用不同的Adapter让它显示出来,比如说最常用的ArrayAdapter,SimpleAdapter,SimpleCursorAdapter,以及重写BaseAdapter等方法。 ArrayAdapter比较简单,但它只能用于显示文字。而SimpleAdapter则有很强的扩展性,可以自定义出各种效果,SimpleCursorAdapter则可以从数据库中
2015-01-13 15:31:49 499
转载 关于Android ListView组件中android:drawSelectorOnTop含义
android:drawSelectorOnTop="true" 点击某一条记录,颜色会显示在最上面,记录上的文字被遮住,所以点击文字不放,文字就看不到android:drawSelectorOnTop="false"点击某条记录不放,颜色会在记录的后面,成为背景色,但是记录内容的文字是可见的When set to true, the selector will be drawn over
2015-01-13 14:21:34 511
原创 下拉列表(Spinner)介绍与应用
Spinner提供一种下拉列表选择,这种输入方式也是很常见的.比如选择语言,屏幕灭屏时间选择等.按照之前介绍的其他组件一样,Spinner的实现也是首先在main.xml文件中添加一个按钮,单击此按钮会跳转到这个SpinnerActivity文件.添加Button的代码如下所示:<Button android:id = "@+/spinner_button" andro
2015-01-13 10:05:29 685
原创 单项选择(RadioGroup)介绍与应用
RadioGroup提供了一种多选一的选择模式,也是经常应用的组件,这里介绍RadioGroup的用法.按照之前已经介绍过的其他组件,首先在main.xml文件中添加一个按钮,单击该按钮会启动这个RadioGroupActivity,首先添加Button的代码,具体如下:<Button android:id = "@+id/radio_group_button" and
2015-01-12 17:37:05 4275 1
转载 android GPS驱动
关于android定位方式android 定位一般有四种方法,这四种方式分别是GPS定位、WIFI定位、基站定位、AGPS定位。1、 Android GPS需要GPS硬件支持直接和卫星交互来获取当前经纬度,这种方式需要手机支持GPS模块现在大部分的智能机应该都有了。通过GPS方式准确度是最高的但是它的缺点也非常明显。1、 比较耗电2、 绝大部分用户默认不开启GPS模块3、
2015-01-12 14:52:09 10180
原创 CheckBox介绍与应用
CheckBox一般用来提供给用户输入信息的组件,可以一次选择多个选项.这个组件解决了不是很方便的手机屏幕操作输入时.用选择组件供用户单击输入选项,显得非常有用.在Android中,和其他组件一样,也是在xml中定义,安装前面讲解的其他组件的编程思路,首先在main.xml文件中再增加一个按钮"CheckBox",单击该按钮程序运行将展示介绍CheckBox的界面.<Button an
2015-01-12 10:37:04 732
原创 编辑框(EditText)介绍与应用
而后前面介绍TextView应用一样,首先在程序的主入口界面上添加一个名字为"EditText"的按钮,并设定其监听器在接收到单击事件时,程序打开展示EditText的界面,在XML文件中添加Button的代码如下所示:<Button android:id = "@+id/edit_view_button" android:layout_width = "wrap_conten
2015-01-10 16:25:25 798
原创 文本框(TextView)介绍与应用
添加一个button,当这个button被单击的时候,显示用来讲解TextView的界面.<button android:id = "@+id/text_view_button" android:layout_width = "wrap_content" android:layout_height = "wrap_content"
2015-01-10 15:00:45 563
原创 按钮(Button)介绍与应用
Button在整个组件中的地位非常特殊,其一般情况下扮演"终结者"的角色,例如:用户在一个界面上输入一些信息,很多情况下都有一个"确认"或者"取消"的按钮.用户的动作一般在这里结束,然后开始另外一系列的动作.在这个项目的主界面上放置一个按钮,看看它是如何使用的,实现代码如下:<LinearLayout xmlns:android="http://schemas.android.com
2015-01-10 14:38:29 1059
原创 onclicklistener的写法
如果要对button做一个监听常见的一种写法: button0.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent0 = n
2015-01-10 12:27:11 703
原创 android 应用的基本组件介绍
android应用 通常由一个或者多个基本组件组成.常见的有activity , service , brodacastreceiver , contentprovider 等.1.activity 和 viewactivity是android应用中负责与用户交互的组件. activity只能通过setContentView(View)来显示指定组件.View组件是所有UI控件,容器
2015-01-09 11:34:55 1200
转载 android中getSystemService详解
http://blog.sina.com.cn/s/blog_71d1e4fc0100o8qr.htmlhttp://blog.csdn.net/bianhaohui/article/details/6220135 android的后台运行在很多service,它们在系统启动时被SystemServer开启,支持系统的正常工作,比如MountService监听是否有SD卡安装及
2015-01-08 17:10:05 517
转载 context & service
context: Context字面意思上下文,位于framework 的android.content.Context中。其实该类为LONG型,类似Win32中的Handle句柄,很多方法需要通过Context才能得到调用者的实例,比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替;而到了一个button的onClick(View
2015-01-08 15:35:30 592
转载 PowerManager 类wakelock的操作实例
使用WakeLock可控制电源状态。比如在玩游戏时不允许屏幕变成DIM或者黑屏,那么只需要在启动游戏的activity的onResume函数中获取wakelock,在退出游戏时的activity的onPause函数中释放wakelock就行。操作方式就是:private void acquireWakeLock() { if (wakeLock ==null) {
2015-01-08 15:26:36 639
转载 android的content provider之二:添加数据库属性及用ContentObserver实现数据库的监听
工作中有时需要开启一个线程做大量的查询,来检测某个数据库值发送了变化,导致的开销很大,后来利用了ContentObserver完美的解决了该问题,这里做下总结。(1)ContentObserver——内容观察者,目的是观察(捕捉)特定Uri引起的数据库的变化,继而做一些相应的处理,它类似于数据库中的触发器,当所察的Uri发生变化时,便会触发它。它的主要方法有: A,public
2015-01-07 18:01:26 463
yocto开发kernel
2016-12-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人