tag 标签: 应用程序

相关博文
  • 热度 2
    2015-2-9 09:58
    162 次阅读|
    0 个评论
    由移动开发者社区组织编写,参与编写作者:银河使者、yuchina、Mrjing、一口三个汉堡、美的小牛。转载请表明出处。 自从苹果公司在2007年发布第一代iPhone以来,以前看似和手机挨不着边的传感器也逐渐成为手机硬件的重要组成部分。如果读者使用过iPhone、HTC Dream、HTC Magic、HTC Hero以及其他的Android手机,会发现通过将手机横向或纵向放置,屏幕会随着手机位置的不同而改变方向。这种功能就需要通过重力传感器来实现,除了重力传感器,还有很多其他类型的传感器被应用到手机中,例如磁阻传感器就是最重要的一种传感器。虽然手机可以通过GPS来判断方向,但在GPS信号不好或根本没有GPS信号的情况下,GPS就形同虚设。这时通过磁阻传感器就可以很容易判断方向(东、南、西、北)。有了磁阻传感器,也使罗盘(俗称指向针)的电子化成为可能。 在Android应用程序中使用传感器要依赖于android.hardware.SensorEventListener接口。通过该接口可以监听传感器的各种事件。SensorEventListener接口的代码如下: package android.hardware; public interface SensorEventListener { public void onSensorChanged(SensorEvent event); public void onAccuracyChanged(Sensor sensor, int accuracy); } 在SensorEventListener接口中定义了两个方法:onSensorChanged和onAccuracyChanged。当传感器的值发生变化时,例如磁阻传感器的方向改变时会调用onSensorChanged方法。当传感器的精度变化时会调用onAccuracyChanged方法。 onSensorChanged方法只有一个SensorEvent类型的参数event,其中SensorEvent类有一个values变量非常重要,该变量的类型是float :该值表示方位,也就是手机绕着Z轴旋转的角度。0表示北(North);90表示东(East);180表示南(South);270表示西(West)。如果values 的值正好是这4个值,并且手机是水平放置,表示手机的正前方就是这4个方向。可以利用这个特性来实现电子罗盘,实例76将详细介绍电子罗盘的实现过程。 values :该值表示倾斜度,或手机翘起的程度。当手机绕着X轴倾斜时该值发生变化。values 的取值范围是-180≤values ≤180。假设将手机屏幕朝上水平放在桌子上,这时如果桌子是完全水平的,values 的值应该是0(由于很少有桌子是绝对水平的,因此,该值很可能不为0,但一般都是-5和5之间的某个值)。这时从手机顶部开始抬起,直到将手机沿X轴旋转180度(屏幕向下水平放在桌面上)。在这个旋转过程中,values 会在0到-180之间变化,也就是说,从手机顶部抬起时,values 的值会逐渐变小,直到等于-180。如果从手机底部开始抬起,直到将手机沿X轴旋转180度,这时values 会在0到180之间变化。也就是values 的值会逐渐增大,直到等于180。可以利用values 和下面要介绍的values 来测量桌子等物体的倾斜度。 values :表示手机沿着Y轴的滚动角度。取值范围是-90≤values ≤90。假设将手机屏幕朝上水平放在桌面上,这时如果桌面是平的,values 的值应为0。将手机左侧逐渐抬起时,values 的值逐渐变小,直到手机垂直于桌面放置,这时values 的值是-90。将手机右侧逐渐抬起时,values 的值逐渐增大,直到手机垂直于桌面放置,这时values 的值是90。在垂直位置时继续向右或向左滚动,values 的值会继续在-90至90之间变化。 【values变量的元素在主要的传感器中所代表的含义】 方向传感器 加速传感器 重力感应器 光线传感器 陀螺仪传感器 1.2 加速传感器 该传感器的values变量的3个元素值分别表示X、Y、Z轴的加速值。例如,水平放在桌面上的手机从左侧向右侧移动,values 为负值;从右向左移动,values 为正值。读者可以通过本节的例子来体会加速传感器中的值的变化。要想使用相应的传感器,仅实现SensorEventListener接口是不够的,还需要使用下面的代码来注册相应的传感器。 // 获得传感器管理器 SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE); // 注册方向传感器 sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_FASTEST); 如果想注册其他的传感器,可以改变getDefaultSensor方法的第1个参数值,例如,注册加速传感器可以使用Sensor.TYPE_ACCELEROMETER。在Sensor类中还定义了很多传感器常量,但要根据手机中实际的硬件配置来注册传感器。如果手机中没有相应的传感器硬件,就算注册了相应的传感器也不起任何作用。getDefaultSensor方法的第2个参数表示获得传感器数据的速度。SensorManager.SENSOR_DELAY_ FASTEST表示尽可能快地获得传感器数据。除了该值以外,还可以设置3个获得传感器数据的速度值,这些值如下: SensorManager.SENSOR_DELAY_NORMAL:默认的获得传感器数据的速度。 SensorManager.SENSOR_DELAY_GAME:如果利用传感器开发游戏,建议使用该值。 SensorManager.SENSOR_DELAY_UI:如果使用传感器更新UI中的数据,建议使用该值。 【values变量的元素在主要的传感器中所代表的含义】 方向传感器 加速传感器 重力感应器 光线传感器 陀螺仪传感器 1.3 重力感应器 加速度传感器的类型常量是Sensor.TYPE_GRAVITY。重力传感器与加速度传感器使用同一套坐标系。values数组中三个元素分别表示了X、Y、Z轴的重力大小。Android SDK定义了一些常量,用于表示星系中行星、卫星和太阳表面的重力。下面就来温习一下天文知识,将来如果在地球以外用Android手机,也许会用得上。 public static final float GRAVITY_SUN= 275.0f; public static final float GRAVITY_MERCURY= 3.70f; public static final float GRAVITY_VENUS= 8.87f; public static final float GRAVITY_EARTH= 9.80665f; public static final float GRAVITY_MOON= 1.6f; public static final float GRAVITY_MARS= 3.71f; public static final float GRAVITY_JUPITER= 23.12f; public static final float GRAVITY_SATURN= 8.96f; public static final float GRAVITY_URANUS= 8.69f; public static final float GRAVITY_NEPTUNE= 11.0f; public static final float GRAVITY_PLUTO= 0.6f; public static final float GRAVITY_DEATH_STAR_I= 0.000000353036145f; public static final float GRAVITY_THE_ISLAND= 4.815162342f; 【values变量的元素在主要的传感器中所代表的含义】 方向传感器 加速传感器 重力感应器 光线传感器 陀螺仪传感器 1.4 光线传感器 光线传感器的类型常量是Sensor.TYPE_LIGHT。values数组只有第一个元素(values )有意义。表示光线的强度。最大的值是120000.0f。Android SDK将光线强度分为不同的等级,每一个等级的最大值由一个常量表示,这些常量都定义在SensorManager类中,代码如下: public static final float LIGHT_SUNLIGHT_MAX =120000.0f; public static final float LIGHT_SUNLIGHT=110000.0f; public static final float LIGHT_SHADE=20000.0f; public static final float LIGHT_OVERCAST= 10000.0f; public static final float LIGHT_SUNRISE= 400.0f; public static final float LIGHT_CLOUDY= 100.0f; public static final float LIGHT_FULLMOON= 0.25f; public static final float LIGHT_NO_MOON= 0.001f; 上面的八个常量只是临界值。读者在实际使用光线传感器时要根据实际情况确定一个范围。例如,当太阳逐渐升起时,values 的值很可能会超过LIGHT_SUNRISE,当values 的值逐渐增大时,就会逐渐越过LIGHT_OVERCAST,而达到LIGHT_SHADE,当然,如果天特别好的话,也可能会达到LIGHT_SUNLIGHT,甚至更高。 【values变量的元素在主要的传感器中所代表的含义】 方向传感器 加速传感器 重力感应器 光线传感器 陀螺仪传感器 1.5 陀螺仪传感器 陀螺仪传感器的类型常量是Sensor.TYPE_GYROSCOPE。values数组的三个元素表示的含义如下:values :延X轴旋转的角速度。 values :延Y轴旋转的角速度。 values :延Z轴旋转的角速度。 当手机逆时针旋转时,角速度为正值,顺时针旋转时,角速度为负值。陀螺仪传感器经常被用来计算手机已转动的角度,代码如下: private static final float NS2S = 1.0f / 1000000000.0f; private float timestamp; public void onSensorChanged(SensorEvent event) { if (timestamp != 0) { // event.timesamp表示当前的时间,单位是纳秒(1百万分之一毫秒) final float dT = (event.timestamp - timestamp) * NS2S; angle += event.values * dT; angle += event.values * dT; angle += event.values * dT; } timestamp = event.timestamp; } 上面代码中通过陀螺仪传感器相邻两次获得数据的时间差(dT)来分别计算在这段时间内手机延X、 Y、Z轴旋转的角度,并将值分别累加到angle数组的不同元素上。 1.6其他传感器 其他传感器在前面几节介绍了加速度传感器、重力传感器、光线传感器、陀螺仪传感器以及方向传感器。除了这些传感器外,Android SDK还支持如下的几种传感器。关于这些传感器的使用方法以及与这些传感器相关的常量、方法,读者可以参阅官方文档。 近程传感器(Sensor.TYPE_PROXIMITY) 线性加速度传感器(Sensor.TYPE_LINEAR_ACCELERATION) 旋转向量传感器(Sensor.TYPE_ROTATION_VECTOR) 磁场传感器(Sensor.TYPE_MAGNETIC_FIELD) 压力传感器(Sensor.TYPE_PRESSURE) 温度传感器(Sensor.TYPE_TEMPERATURE) 虽然AndroidSDK定义了十多种传感器,但并不是每一部手机都完全支持这些传感器。例如,Google Nexus S支持其中的9种传感器(不支持压力和温度传感器),而HTC G7只支持其中的5种传感器。如果使用了手机不支持的传感器,一般不会抛出异常,但也无法获得传感器传回的数据。读者在使用传感器时最好先判断当前的手机是否支持所使用的传感器。 【values变量的元素在主要的传感器中所代表的含义】 方向传感器 加速传感器 重力感应器 光线传感器 陀螺仪传感器
  • 热度 1
    2013-6-8 16:10
    152 次阅读|
    0 个评论
           Android 应用程序框架实践培训   一:课程背景:    APK 是AF(Application Framework)和应用开发工程师共同智慧的结晶,APK的运行是AF和应用开发工程师开发的Code相互作用。 本课程依据和Android之父以及Google、三星、HTC中的Android团队合作的经验,力求从设计者的角度带领大家彻底洞悉AF,先从AF的架构和移植讲起,然后详细的以AMS、PMS、WMS的Code细致验证和深度剖析,最后以ANR的彻底剖析结束。 二:这个课程能带给您什么价值? 有Android App开发经验应用软件开发工程师: 第一:解决应用程序频繁出现的疑难杂症,例如ANR、OOM等 第二:应用程序的安装、运行、结束背后的秘密、并以细致的代码剖析来深度探讨; 第三:是从应用开发工程师走向Android架构师最快捷、最实用的的道路; 有经验的Android系统开发人员: 第一:Application Framework内部所有的架构设计秘密揭秘,让你把自己的硬件服务移植进AF如行云流水般畅快; 第二:掌控Android应用程序开发者; 第三:领略最顶级的商业架构思维是如何转化为具体的框架代码的;   中国电子标准协会 http://www.ways.org.cn 三:适合对象:    有至少半年经验的Android应用程序开发,经验越丰富越好;    有Android系统移植经验;    上过王家林Android软硬整合课程或者应用程序开发课程的朋友;   四、培训内容     第一天 第1个主题: Android的哲学思考 1. 造型简单、内涵丰富、无限重复 2. Android的IOC 3. APK与API   第2个主题:Android Application Framework揭秘 1. CS结构:应用框架中的Manager通用的结构 2. Manager与Service一一对应 3. 跨进程通信与AIDL   第3个主题:Android中启动一个新的应用程序揭秘 1. 当我们触摸Android屏幕中Launcher上的一个应用程序的图标的时候到底发生怎样的调用过程? 2. 应用程序的执行入口到底在哪里? 3. 一个新的Android应用程序的进程到底是怎么产生的?   第4个主题:Dalvik VM 1. Dalvik VM的特点,Dalvik VM和JVM的比较 2. Dalvik VM的内存分布及OOM(Out of Memory)的根本原因和解决方案是什么? 3. Preload Classes和 Preload Resources,ClassLoader到底在哪里? 4. Dalvik与Java和C/C++   第5个主题:把Java写的 Service加入到Applciation Framework中 1. IInterface与CTS 2. Binder 3. AIDL 4. Java Service与Manager 5. SystemServer、ServiceManager   第6个主题:Android框架移植移植时的事件驱动机制 1. Android Service是如何应对硬件阻塞的? 2. 开辟新的子线程并不断的poll 3. Listener注册 4. Callback 5. Application Framework中的Handler、Message、Looper、MessageQueue、 6. 事件驱动机制实例   第7个主题:Manager、Service和完整的数据流 1,Manager和Service分离的原则 2,ANR问题 3,阻塞式的操作和非阻塞式操作 4,以实例说明Android中的从最底层到最上层的数据流   第8个主题:ActivityManagerService之AMS总体剖析 1.ActivityManagerService的main函数剖析 2,AMS的 setSystemProcess剖析 3.AMS的 installSystemProviders函数剖析 4.AMS的 systemReady剖析   第9个主题:ActivityManagerService之startActivity剖析 1.ActivityManager 2.AMS的startActivityAndWait函数剖析 3.startActivityLocked剖析   第10个主题:ActivityManagerService之Broadcast和BroadcastReceiver剖析 1.registerReceiver流程剖析 2.sendBroadcast流程剖析 3.BROADCAST_INTENT_MSG消息处理函数 4.应用进程处理广播剖析 第11个主题:ActivityManagerService之startService剖析   1.startService代码剖析 2.startService流程图       时间 內  容 备注 第二天 第1个主题:ActivityManagerService之进程管理 1.Linux和Android中的进程管理 2.AMS进程管理函数剖析   第2个主题:ActivityManagerService之App的 Crash处理 1.应用进程的Crash处理 2.AMS的handleApplicationCrash剖析 3.AppDeathRecipient binderDied剖析   第3个主题:PackageManagerService之main函数剖析 1.构造函数剖析之前期准备工作 2.构造函数剖析之扫描Package 3.构造函数剖析之扫尾工作 第4个主题:PackageManagerService之APK Installation剖析 1.adb install剖析 2.pm剖析 3.installPackageWithVerification函数剖析 4.APK 安装流程 5.Verification介绍   第5个主题:PackageManagerService之queryIntentActivities剖析 1.Intent及IntentFilter介绍 2.Activity信息的管理 3.Intent 匹配查询剖析 4.queryIntentActivities总结   第6个主题:PackageManagerService之installd及UserManager剖析 1. installd剖析 2.UserManager剖析     第7个主题:WindowManagerService之应用程序界面的初始化 1. Android中的窗口 2.应用程序界面初始化的过程   第8个主题:WindowManagerService之窗口管理 1. WindowManagerService.java     WindowState.java     WindowToken.java     AppWindowToken.java     Session.java     InputManager.java     InputMonitor.java 等的分析 2.Activity启动过程中创建窗口的时序   第9个主题:WindowManagerService之WindowManagerImpl剖析 1. addView 2.ViewRoot     第10个主题:WindowManagerService之WindowManagerImpl剖析 1. ViewRoot和WMS的交互 2.WindowState和Surface   第11个主题:彻底洞悉ANR 1. ANR通常出现的场景和常用的解决方案 2.从框架和系统的观点来看:ANR到底是怎么产生的? 3. ANR的终极解决方案是什么?        
  • 热度 1
    2013-6-8 16:07
    114 次阅读|
    0 个评论
           Android 应用程序开发实践培训   在多年的Android(6款硬件产品和超过20款应用软件)及HTML5和Hadoop系列技术的实战背景下制定本课程,课程全程以过去工作的案例为核心,掌握本课程后至少能够轻松编写完成诸如UC迅雷、优酷和KU6等的Android视频客户端、赶集网的移动客户端等,旨在帮助贵公司完成任意负责程度的Android程序开发; 课程目标: 掌握Android应用开发中最常用到的Java技术及其最佳实践 通晓Android的架构哲学和力量来源以及实现技术; 能够开发出任意类型、任意复杂程度的应用程序; 课程要点: Android频繁使用的Java技术实战 揭秘Android; 精通四大组件; 精通Android数据库、文件系统等I/O操作; 精通Android高级界面编程; 精通Android网络编程; 课程要求: 对Android有强烈兴趣,有一定的面向对象语言的开发基础;   中国电子标准协会 http://www.ways.org.cn   时间 内容 需求 第一天 1 , Java 在 Android 开发中的最佳实践( 60 分钟) 1. Java开发金三角:控制器、接口、业务代码; 2. “Don’t call me, I’ll call you back!” 3. UI线程和业务线程; 4. 生命周期控制   2 , Android 中最频繁使用到的 Java 技术( 90 分钟) 1. 继承 2. 面向接口编程 3. 多线程 4.网络编程 5. 反射技术 另附:MVC编程模式 3 , Android 的哲学思考( 20 分钟) 1. 造型简单、内涵丰富、无限重复 2. Android的胜利者 3. Android核心力量源泉 4. Android的IOC容器、解耦 5.Android和iOS的核心区别 4 , Android 框架分析( 20 分钟) 1. Android框架 2. Android设计模式 3. 深入Android的IOC 4.框架的重大意义 5.Android的硬件框架HAL 6.Android各主要版本区别(2.3,3.0, 4.0) 7. 5.Android和iOS的共同点 5 , Android 开发环境搭建和 HelloWorld ( 60 分钟) 1. Java、Eclipse、SDK、NDK、ADT 2. 搭建环境过程中的疑难问题 3.彻底解决没有3G信号的问题 4.开发HelloWorld 5.彻底剖析第一个程序 6.Android应用程序开发的经典模式---MVC模式彻底剖析 7.总结:掌握一个完整的应用程序的开发步骤、注意事项、方法等   6 , Android 发短信、发彩信、打电话( 30 分钟) 1.发短信案例 2.发彩信案例 3,打电话案例 4,总结和思考之一:Android应用程序的设计理念 5,总结和思考之二:Android应用程序的生命周期 7 , Activity 生命周期剖析、应用程序生命周期剖析( 30 分钟) 1.Activity生命周期周期图分析 2.Activity生命周期测试代码 3.Activity嵌套生命周期 4.应用程序生命周期剖析 5.对Android管理应用程序和Activity方式的思考   8 ,不同 Activity 之间的调用和数据传输,关于隐式 Intent 精彩绝伦剖析,关于 setType 的问题已经解决方案显示 Intent 和隐式 Intent 使用场景分析( 30 分钟) 1.startActivity,startActivityForResult,requestCode,resultCode,finish,onActivityResult的彻底剖析 2.关于隐式Intent剖析:动作(Action)、类别(category)、数据data(Uri(Schema,Host,Path)和数据类型(MimeType)) 3.setType()带来的困扰以及最佳解决方案 4.显示Intent和隐式Intent使用场景、使用意义、利弊。 5.对Android中鼓励解耦的实现方式的思考 9 , Handler 、 Looper 、 Message 、 MessageQueue ( 60 分钟) 1. Android的事件驱动模型 2. Looper、MessageQueue、Hanlder、Message等源码深度剖析 3. Looper、MessageQueue、Hanlder、Message及多线程实战案例       第二天 1 , Android 基本 UI 设计与开发技巧( 30 分钟) 1. UI设计理念与开发技巧 2. 菜单实战; 3,Google Map、WebView、Gallery、Spinner、Tab Layout、Grid View、Table layout、Relative layout、Linear layout实战;   2 , ListView 异步加载技术( 30 分钟) 1. 使用ListView异步加载技术的必要性 2. ListView异步加载技术编程实战   3 , ListView 分页加载技术( 30 分钟) 1. 使用ListView分页加载技术的必要性 2. ListView分页加载技术编程实战   4 ,广播接受者 BroadcastReceiver ,短信***案例(接受到短信后上传到服务器或发送到指定的号码或者发送到指定的邮件中)( 50 分钟) 1.剖析广播接收者,与JMS的比较,广播接受者的IoC原理 2.短信监听Android客户端 3.服务器端搭建 4.通过网络把接收到的短信上传到服务器 5.把接收到的短信发送到指定的手机号码或者邮件中 6.BroadcastReceiver的的生命周期和注意事项以及5秒钟生命响应时间的解决方案   5 ,服务 Service ,电话***(每次开机的时候自动开机,电话来时录音并上传到服务器)( 50 分钟) 1.详细剖析Service 2.构建电话监听的Service 3.使用BroadcastReceiver监听开机事件,并在开机时启动电话监听的Service 4.上传音频文件到服务器 5.关于Android安全体系的思考 6 , SharedPreferences 的读写、 SharedPreferences 操作权限、从不同的包中读取参数及源代码剖析( 10 分钟) 1.SharedPreferences的读 2.SharedPreferences的写 3.对SharedPreference操作权限分析 4.读写不同包中的SharedPreference 5.源代码剖析 7 ,单元测试、日志、手机内部文件的形式存储数据及源代码剖析( 10 分钟) 1.单元测试 2.日志 3.对手机的文件进行读写:openFileInput()、openFileOutput() 4.对文件读写的单元测试 5.对四种文件权限模式的测试 6.常用的文件读写API简介 7.剖析源代码   8 , SDCard 读写、代码重构、源代码剖析 1.构建业务层 ( 10 分钟) 2.对业务层的单元测试 3.使用Activity调用业务层对SDCard进行读写 4.提取出帮助类,严格遵循MVC模式对代码进行重构。 5.源代码剖析   9 , SQLite 管理工具类、 CRUD 操作、分页等及源代码剖析( 30 分钟) 1.SQLite简介 2.SQLiteOpenHelper类 3.CURD:execSQL()和rawQuery() 4.分页 5.对getWritableDatabase()和getReadableDatabase()进行源代码分析,剖析其原理 6.执行流程和原理的深入彻底的剖析 7.源代码剖析   10 ,使用 Android 自身提供的 API 进行 CRUD 操作、 ListView 的详细讲解及源代码剖析( 10 分钟) 1.使用Android自带的insert、update、query、delete等进行CRUD操作 2.剖析insert、update、query、delete的源代码 3.对ListView深入详细的剖析,自定义视图,自定义Adapter。 4.剖析Cursor的源代码 5.关于SQLite和Cursor的“_id”问题的剖析和解决方案 7.源代码剖析       第三天 1 , ContentProvider 背景、用途,如何构建 ContentProvider , UriMatcher , ContentUris ,对 CotentProvider 进行单元测试、源代码分析( 60 分钟) 1.ContentProvider背景、用途 2.构建ContentProvider的详细步骤 3.对URI的彻底剖析 4.分析UriMatcher,ContentUris 5.对ContentProvider的业务层代码进行单元测试 6.ContentProvider的源代码剖析 2 ,基于通讯录的开发 ( 30 分钟) 1. 通讯录的数据库和数据表分析 2. 通讯录ContentProvider的源码剖析 3. 获取所有的联系人信息 4.添加联系人 5.如何处理添加通讯录记录时的事物问题          3 ,网络传输的数据格式及其解析(40分钟) 1. XML与JSON 2. JSON解析和生成 3. XML解析和生成 4 ,断点续传(一)类似迅雷的多线程下载器(适用于任何类型的文件下载) ( 90 分钟) 1,多线程下载断点续传原理和流程图 2,下载文件时Http协议协议详解 3,多线程下载断点续传程序:设计服务端和Android端 4,Android端的内容涉及IoC、多线程、SQLite数据库、Handler、Http协议、缓存处理、意外关机时候的处理、编写框架、MVC、Service、Android中的I/O流、代码调试、Activity的生命周期等 5,单元测试 6,软件调试   5 ,断点续传(二)多线程断点文件上传器(适用于任何类型的文件上传) ( 30 分钟) 1,断点续传原理和流程图 2,上传文件的Http协议详解 3,自定义自己的文件传输协议 4,服务端程序的编写:文件的下载与实时数据的记录、监听模式、乱码问题的处理、并发问题、黑客安全问题 5,客户端程序的编写:Android内存溢出问题,Android中的Socket编程、大文件的传输、大文件传输时候的安全问题 6,单元测试 7,软件调试 6 ,Android客户端表单数据的上传 ( 60 分钟)     1,上传基本的数据类型 上传图片等附件 把代码重构为能够上传任意数量的字段和任意数量的附件的工具类 4,思考本地离线存储/在线上传的技术方案 7 , WIFI通讯实战 ( 10 分钟)     1,WIFI通讯特性剖析 WifiManager 、InputStream和OutputStream 3,WIFI应用开发实战 8 ,Android中Java与WebView中Javascript相互沟通 ( 30 分钟)     1,制作Android界面的新大陆 Java调用Javascript 3,Javascript调用Java                  
  • 热度 1
    2010-7-8 11:23
    3401 次阅读|
    1 个评论
    ——作者:In-Stat中国助理分析师 李兵 前些日子看到巴菲特又向盖茨基金会捐出价值16亿美元的股份,到目前为止,巴菲特捐出的股份价值超过80亿美元。每回看到这样的新闻,我就在想,这么多钱,要是换成纸币,得装满多大的屋子啊。对于这些超级富人来说,就算天天挥霍浪费,一辈子可能也花不完,财富在他们眼里仅仅是个数字而已。可是对他们来说,数字大到一定程度以后,还重要吗? 无人能够怀疑iPhone对于智能手机领域传统模式的破坏力,应用程序的数量也是乔布斯津津乐道经常挂在嘴边的。不过话说回来,我认为应用程序上万以后,除了能做一些宣传以外,数字上意义就不大了。30万个应用程序数量和10万个应用程序没什么区别。 一个手机用户一辈子也使不了10万个应用程序。一款新的好玩的应用程序出来,其他较大的平台上一定会有相应程序移植过去,开发者是果,用户需求才是因。用户数量达到一定程度之后,免费就会成为趋势。毕竟对于开发者来说,再好的创意也架不住时间的沉淀。到那时候,消费者购买智能手机的时候又会关注什么呢?看看现在消费者如何选购电脑,或许能够略知一二了。 点击浏览更多 李兵博客文章
  • 热度 1
    2010-7-8 11:22
    1146 次阅读|
    1 个评论
    ——作者:In-Stat中国助理分析师 李兵 前些日子看到巴菲特又向盖茨基金会捐出价值16亿美元的股份,到目前为止,巴菲特捐出的股份价值超过80亿美元。每回看到这样的新闻,我就在想,这么多钱,要是换成纸币,得装满多大的屋子啊。对于这些超级富人来说,就算天天挥霍浪费,一辈子可能也花不完,财富在他们眼里仅仅是个数字而已。可是对他们来说,数字大到一定程度以后,还重要吗? 无人能够怀疑iPhone对于智能手机领域传统模式的破坏力,应用程序的数量也是乔布斯津津乐道经常挂在嘴边的。不过话说回来,我认为应用程序上万以后,除了能做一些宣传以外,数字上意义就不大了。30万个应用程序数量和10万个应用程序没什么区别。 一个手机用户一辈子也使不了10万个应用程序。一款新的好玩的应用程序出来,其他较大的平台上一定会有相应程序移植过去,开发者是果,用户需求才是因。用户数量达到一定程度之后,免费就会成为趋势。毕竟对于开发者来说,再好的创意也架不住时间的沉淀。到那时候,消费者购买智能手机的时候又会关注什么呢?看看现在消费者如何选购电脑,或许能够略知一二了。 点击浏览更多 李兵博客文章
相关资源
广告