??xml version="1.0" encoding="utf-8" standalone="yes"?>一级欧美视频,国产精久久一区二区,成年人视频在线免费观看http://www.aygfsteel.com/jiangshachina/category/46245.html同是Java爱好者,盔R何必曾相识Q?lt;br>    a cup of Java, cheers!zh-cnWed, 14 Dec 2011 21:03:16 GMTWed, 14 Dec 2011 21:03:16 GMT60JavaOne and Oracle Develop 2010 (Beijing)--Preview(?http://www.aygfsteel.com/jiangshachina/archive/2010/12/12/340183.htmlSha JiangSha JiangSun, 12 Dec 2010 12:55:00 GMThttp://www.aygfsteel.com/jiangshachina/archive/2010/12/12/340183.htmlhttp://www.aygfsteel.com/jiangshachina/comments/340183.htmlhttp://www.aygfsteel.com/jiangshachina/archive/2010/12/12/340183.html#Feedback2http://www.aygfsteel.com/jiangshachina/comments/commentRss/340183.htmlhttp://www.aygfsteel.com/jiangshachina/services/trackbacks/340183.html JavaOne and Oracle Develop 2010 (Beijing)--Preview
自从Sun被Oracle收购之后Q往怸q一度的SunTechDaysq我们而去了,但它以另一UŞ?-JavaOne与Oracle开发者大?北京)--回到了我们的w边。本ơ大会即在下周开q,在此之前请允许我先列举一下我个h感兴的若干主题?2010.12.12最后更?

JavaOne与Oracle开发者大?010(北京)下周p与大家见面了Q其实与本次会议同时q行的还有Oracle全球大会2010(北京)(大家肯定知道Oracle?a >Openworld?。这两个会议相对独立Q可以同时注册,也可以只参加其中M一个,当然Q参会费有所不同。由于我只参加JavaOne与Oracle开发者大?010(北京)Q故本文中的内容只涉及q一会议中的相关主题。各个主题的?a >?/a>我均摘抄自本ơ会议的官方|站Q最后我q会淯几句^_^

1. JavaE序设计语言
Coin目Q针对JDK的微语a变化
    Coin目旨在通过选择和实施一l微的语言变化来提高程序员的JDK生力。Coin目语言变化包括改进的整数倹{字W串转换和尖括号输入。本专题讲񔞮介l这些语a变化q演CIDE支持。此外还讨论通用语言演变的选择q程和标准?br />
JDK 7和Java SE 7
    本专题讲座将展示Oracle工程师和外部人员为JDK 7和Java SE 7开发的一些主要特性。然后将展望一下未来版本的可能Ҏ?br />
在JDK中用文件系lAPI
    JDK不久包含一个新的文件系lAPIQ用于解册多长期存在的问题和java.io.File局限性问题。本专题讲񔞮介l该APIq说明它可以如何用于Q? 讉K文g* 控制路径* 复制和移动文? 处理W号链接* 执行递归操作* 讉K文g权限和其他属? 监控文gpȝ* 开发自q定制文gpȝ* 其他我们通过实例来说明如何有效用该API来构建广泛用文件系l的工具和应用程序?br />
代码{֐最佛_?/strong>
    代码{֐对于开发h员来说极具吸引力Q因为它能ؓJava应用或扩展提供通常没有的更多权限。然而,有时最佳的决策却是不用代码{֐Q因会改善用户体验,q且应用E序可在安全沙盒中自动运行?本专题讲座将介绍代码{֐最佛_践,探讨何时q行代码{֐q提供其部v技巧。我们还介l用户能够创徏更引人注目的非签名应用程序的新特性以及即推出的与代码签名相关的JDKҎ,例如{֐模块?br />
2. Java虚拟?/span>
Oracle的Java虚拟机战?/strong>
    本专题讲座介lHotSpot和Oracle JRockitq两个通用的Oracle Java虚拟?(JVM)。讲座将讨论两种实施的优~点Q给出选择——特别是采用了Oracle融合中间件品时Qƈ介绍融合Z个统一JVM的\U图?br />
我的应用E序怎么了:Java虚拟机监控工?/strong>
    随着多核pȝ的广泛用,开发h员面临着新的问题Q如CPU数量增加时性能下降。这些大规模问题往往是由于用传l调试器和分析器时对局部事件的不可见(~存丢失、锁定模式等Q造成的。本专题讲񔞮介l一个新的开发工P它准记录ƈ巧妙昄U程、锁、处理器和内存之间的交互。演C将展示如何Q? 监控JDK 6、JDK 7和Java实时pȝ* 使用分布视图来快速识别风? 在出现特定问题时使用频率视图来探? 使用调度视图来检查当时究竟发生了什? 兌q些视图?br />
垃圾回收言l结?/strong>
    垃圾回收 (GC) 的采用促q了大型企业理软g可靠性的提高和开发时间的~短。但GC不是一个魔杖;管它可以消除许多种可能的程序员错误Q但q有一些其他问题开发h员必 d以注意在本专题讲座中Q我们将对许多GC话做一个公正的评估Q它擅长什么和不擅长什么。尽本讲不会直接涉及某一特定产品Q但它也值得所有? Java及依赖于Java虚拟机的其他语言Q如Scala、Jython、Jruby{)~写E序q用GC的程序员x?br />
如何在Java虚拟Z调优和编写低延迟应用E序

    许多软g应用E序都需要低延迟响应。这些应用程序的许多使用者都希望利用Java SE所提供的开发和部v优势。随着Java虚拟?(JVM) 的最新发展,许多有低延迟要求的应用程序都可以使用Java SE来实施。本专题讲񔞮介l如何针对这些应用程序和~程l构调优CJVMQ以及可实现低gq响应的Java SE数据l构最佛_c?/span>

3. Oracle
使用Oracle数据库构建高性能应用E序的最佛_?/strong>
    本专题讲座将探讨使用Oracle数据?1g构徏高性能应用的设计和~码最佛_践,q将涉及数据库访问层。本讲q将演示Oracle数据?1g工具Q如AWR和ADDMQ突出它们所提供的卓的应用E序性能z察力,q展C些工具如何在开发周期初期以及应用程序部|阶D帮助识别应用程序的问题。虽然介l的是Java和C/C++用例Q但所q技术还适用于其他语aQ如PHP、Ruby、Python和Perl。本专题讲适合于希望了解如何提升基于数据库的应用程序性能的Q何hQ无Z们用何U编E语a?br />
部v一?隐Ş"的数据库QOracle数据?1gW??/strong>
    本专题讲座将详细介绍如何在嵌入式环境中部|具有行业优势的完整数据库。您了解到如何使用Oracle数据?1gW?版目前提供的可用工具和功能将该数据库嵌入您的应用E序中,使之Ҏl用户完全透明。本专题讲q将探讨嵌入式数据库的静默安装、管理和可用性?br />
面向开发h员和DBA的强大Oracle SQL Developer报表
    大多数数据库理员都有数据库健康查和查看数据库状态的脚本Q而应用开发h员和数据库开发h员则通过q行报表来监控其数据状况和检查其所用的数据库结构。Oracle SQL Developer为检查和查询实例及系l数据提供了一l现成报表。通过应用额外的过滤器Qƈq行相应的数据排序,可以审查和调整数据展现表根{本专题讲񔞮向用户展示如何利用q些报表和支持数据表格的Ҏ。您了解如何自建报表,包括囑Ş化显C、主从报表、传递参数和d功能?br />
使用内存数据库技术的高性能SQL应用E序
    本专题讲座将Oracle TimesTen内存数据库和Oracle内存数据库高速缓存的产品功能q行技术讨论和演示。了解如何用JDBC、ODBC?NET、OCI?Pro*C和PL/SQL{标准SQL和数据库API来显著提高应用程序响应速度和吞吐量。本专题讲񔞮揭C如何用内存数据库高速缓存网格有效扩展应用程序,从而扩大事务吞吐量和高速缓存数据的有效寸。对于需要利用易于理解和q泛使用的数据库API来最大限度地提高新应用程序和现有应用E序性能的数据库开发h员,本专题讲座是最佳选择?br />
使用内存数据库技术的高性能SQL应用E序
    本专题讲座将Oracle TimesTen内存数据库和Oracle内存数据库高速缓存的产品功能q行技术讨论和演示。了解如何用JDBC、ODBC?NET、OCI?Pro*C和PL/SQL{标准SQL和数据库API来显著提高应用程序响应速度和吞吐量。本专题讲񔞮揭C如何用内存数据库高速缓存网格有效扩展应用程序,从而扩大事务吞吐量和高速缓存数据的有效寸。对于需要利用易于理解和q泛使用的数据库API来最大限度地提高新应用程序和现有应用E序性能的数据库开发h员,本专题讲座是最佳选择?br />
4. MySQL
MySQL 5.5版中性能和可伸羃性的增强
    本技术专题讲座深入探讨了MySQL服务器和InnoDB 1.1插g中新增的性能特征。其中包括对多核pȝ获得的可伸羃性的详细介绍?br />
MySQL性能调优最佛_?/strong>
    了解如何只利用MySQL附带的工兯行MySQL的基本调优。了解如何对q接q行调优以及选择最佛_储引擎,了解如何分析MySQL服务器的关键l计数据。本专题讲是一个技术讲座,但无需具备MySQLl验?br />
MySQL的战略:下一步计划是什么?
    本讲座将介绍MYSQLC֌、品和战略的最C息,探讨MYSQL如何与Oracle全面、开放且集成的战略相一致。结识领先的MySQL开发者,了解MySQL的下一步开发计划?br />     W者:׃Sun被Oracle收购后,MySQL很自然地落入了Oracle的袋中,从那时vQ整个社区对MySQL的前景就执悲观态度。MySQL是我最熟悉的主数据库了,但也很长旉没太x了,q次顺便听听Oracle如何安排MySQL的命q?/em>

5. Embedded/Mobile
我的朋友在哪里:Java ME定位API实践
    在本上机操作中,参会者将创徏一个用Javaq_微型?Java ME)定位API的移动应用程序,以跟t其朋友的位|ƈ在地图上昄。此外,该移动应用程序还支持朋友之间的文本消息传递,q会在地图上昄他们以及他们的照片和名字。本专题讲适合希望了解如何应用程序的内容与应用程序用L当前位置q行捆绑的开发h员。参会者将了解Q? 如何使用Java ME定位API- 如何在Java ME应用E序中用谷歌地图服? 如何使用Java ME通用q接框架- 如何使用可视化工h设计应用E序的流和UI?br />
    W者:我一直都没关注过嵌入式或Udcd用,但现在这L应用来普遍了Qn边不同事与朋友也在使用iPhoneQ或ZAndroid的智能手机,q都昄出手机应用的巨大市场潜力。而基于位|的Ud应用也是方兴未艾(玩过Foursquare吗?)Q所以我q次也想去试试水。不q遗憄是,q次没有Google Android的相关主题,隑ր还是由于Oracle对Google的R权诉|Q大家还是应以和?/em>

6. 杂想
    当年Sun被Oracle收购Ӟ我还颇有几分感慨。无论是JavaE序设计语言Q还?a >SPARC处理器,以及Solaris/OpenSolarisQ在技术上都是同类中的g者,但在商业上都未能成功。在软g斚wQ作为Java的创造者,Sun从Java中获得的收益不如IBMQ还不得不开源了它的主要软g产品(?a >SolarisQ?a >NetBeans)Q甚至于Java也被q开源了--OpenJDK。而在g斚wQSun的服务器QSPARC处理器也是曲高和寡,市场占用率很低?br />     此外Q对Java发展有重要A献的人物Q如Effective Java的作?a >Joshua BlochQJava之父Games GoslingQ也相d了Sun/Oracle。回惛_q_我第一ơ参加SunTechDays(JavaChina 2005)Ӟq有q怸Games Gosling有一张合影。可惜,在Oracle丑֊的会议中也许再也看不到q位和蔼的大胡子老爹?-(

    ׃工作原因Q我不会参加明天(2010.12.13)下午的开q式Q不q明天下午的专题本来也很,所以不参加也关pM大。我会ؓ每一天的参会l历写一博文,记录自己的所见,所闻,所思,所感,q会附上囄Q请大家持箋x?br />
请关注我的系列博?-JavaOne/SunTechDays?/span>




Sha Jiang 2010-12-12 20:55 发表评论
]]>
Android 101--安装(?http://www.aygfsteel.com/jiangshachina/archive/2010/10/11/334478.htmlSha JiangSha JiangMon, 11 Oct 2010 13:43:00 GMThttp://www.aygfsteel.com/jiangshachina/archive/2010/10/11/334478.htmlhttp://www.aygfsteel.com/jiangshachina/comments/334478.htmlhttp://www.aygfsteel.com/jiangshachina/archive/2010/10/11/334478.html#Feedback2http://www.aygfsteel.com/jiangshachina/comments/commentRss/334478.htmlhttp://www.aygfsteel.com/jiangshachina/services/trackbacks/334478.htmlAndroid 101 -- 安装
q是JavaLobby中Android 101pd博文中的W二?/a>Q介l了如何安装Android开发环境。对于我q个Android门外汉来_臛_学习C一点儿新知识,希望大家也能如此?2010.10.11最后更?

在本pd的上一文章,我们看过了Android框架的基本概c在q篇文章中,我们看看如何在系l中q行Android安装。我假设你已l安装Java过5q了。ؓ了更方便些,你应该安装Eclipse作ؓ你的开发IDE?br /> 讄Android SDK
?a >http://d.android.com/sdk/index.html
中下载Android SDK?br /> 下蝲后,zip文g解压到硬盘的某个路径上。你可以这个SDK路径加到pȝPATH变量中,但这是可选的?br /> q行SDK安装E序。在Windows中就?strong>SDK Manager.exe
Q而在其它q_中你需要运?strong>tools/android
。该E序允许你安装SDKlgQ例如文档,q_Q插件式cd和USB驱动?br />

一般地Q你会想在这儉K择M东西Q以便你能ؓMAndroid目标q_~写应用?br />
开发工?/span>
安装的下一步是在你的Eclipse实例中安装Android开发工具包。最好的Ҏ是用Help/Install New Software菜单中的升񔽎理器。只需d一个指?a >https://dl-ssl.google.com/android/eclipse的新的升U站点即可?br />


一旦完成了安装Q你q需要重启Eclipse?br />
W一个Android工程
现在你已l准备好q行Android开发了?br /> 首先你要让Eclipse知道到哪里去找Android SDK。打开首选项对话框,点击Android,讄Android SDK的安装\径:


最后一步就是确保你有一个运行Android应用的AVD(Android虚拟讑֤)。你可以使用AVD理器来做到q一点:


当用New Project向导Ӟ你就有机会去创徏Android工程了:


从这儿你能创Z个针对特定Android SDK的工E:


如果你点M一步,你还可以创徏一个Android试工程以测试你的应用程序?br /> 在工E中Q你q可以看到新创徏的活动:
package com.dzone.android.app;

import android.app.Activity;
import android.os.Bundle;

public class FirstActivity extends Activity {
    
/** Called when the activity is first created. */
    @Override
    
public void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

我们稍作修改,创徏自己的所使用的视图:
package com.dzone.android.app;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class FirstActivity extends Activity {
    
/** Called when the activity is first created. */
    @Override
    
public void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        TextView view 
= new TextView(this);
        view.setText(
"A New App");
        setContentView(view);
    }
}

Z看看q是否能工作Q点击Run As/Android application。这会启动Android模拟器,q运行你新创建的应用E序?br />

既然Q你已经在系l安装好了AndroidQ本pd的后l文件将会带你看看编写你自己的Android应用的过E?br />


Sha Jiang 2010-10-11 21:43 发表评论
]]>Android 101--基础(?http://www.aygfsteel.com/jiangshachina/archive/2010/10/07/333917.htmlSha JiangSha JiangThu, 07 Oct 2010 13:25:00 GMThttp://www.aygfsteel.com/jiangshachina/archive/2010/10/07/333917.htmlhttp://www.aygfsteel.com/jiangshachina/comments/333917.htmlhttp://www.aygfsteel.com/jiangshachina/archive/2010/10/07/333917.html#Feedback0http://www.aygfsteel.com/jiangshachina/comments/commentRss/333917.htmlhttp://www.aygfsteel.com/jiangshachina/services/trackbacks/333917.htmlAndroid 101 -- 基础
q是JavaLobby中Android 101pd博文中的W一?/a>Q介l了Android开发的基本概念。对于我q个Android门外汉来_臛_学习C一点儿新知识,希望大家也能如此?2010.10.07最后更?

    在当前的软g开发世界中Q编写移动应用已变得非常行了。对开发框架的选择q不太多Q可用的手机的数量也有限。尽编写运行在iOS上的应用十分行Q但Android已经获得了Java开发者们的关注。在之后的若q篇文章中,我将采取一些步骤帮助你入门Android开发。但在我们开始编码之前,让我们先看看Android开发的一些核心原理?br />
什么是AndroidQ?/span>
下面q张来自于在U的开发者手册的囄展示了Android操作pȝ的架构:

Android构徏?strong>Linux内核之上QLinux内核会管理典型的操作pȝ服务?strong>Androidq行时环?/strong>ZDalvik虚拟?目前Oracle 正给予许多关注的东西)。Dalvik是Java虚拟机的一个瘦w后的变U,它基于Apache Harmony的Java实现。不提供JavaMEQSwing或AWTlgQ相反地QAndroid提供它自qlg库?br />     q有一些由C/C++~写?strong>本地cd。Surface Manager处理针对展现子系l的讉KQ而媒体类库提供了针对最行音频和视频格式的播放功能?br />     应用框架是大部分开发者所感兴的Q它提供了创建合格AndroidUd应用所需的API和服务?br />
Android核心概念
如前所qͼ应用框架拥有开发者创建应用程序所需的一切。下面是主要概念的纲要:
zd
一个活动是一个用L面屏q。一个应用程序在应用的执行过E中可以有一个或多个zd。你所创徏的每一个活动可以拥有一个它自己的窗口以q行囑Şl制?br /> 服务
服务作ؓ后台dq行Q它没有可视化的表现形式。与zd一P服务q行在主应用q程U程中,但服务常会派生出其它的线E来执行dQ而不会媄响其它应用的q行。服务的典型例子是音乐播放器,当它在播攑ֈ表中的歌Ӟ你的手机q可以做其它事情?br /> 内容提供?/strong>
内容提供器是一个客户化APIQ它允许d特定的数据集。它允怸同的应用彼此之间׃n数据。内Ҏ供器都是ContentProvider基类的子c,ContentProvider提供一个访问数据的标准接口。应用程序不能直接调用ContentProvider的实玎ͼ转而要使用 ContentResolver对象Q该对象可以讉KMContentProvider实现?br /> Intent
Intent是一个特定的zdQ例如发送电子信Ӟ播放歌曲Q或发v一ơ联pR?br /> 资源
Android应用拼图中的最后一块就是资?-应用E序需要访问或展示的图片,文本或非~码的信息?br />
zd生命周期
下图展示了一个活动在其生命周期中的不同状态:

当你不能控制状态间的{换时Q你可以通过onX()ҎQ像onStart()QonResume(){等Q来L状态的改变。你可以重写q些Ҏ以应用E序能恰当地对这些状态作出反应?br />
下一?/span>
现在你已对Android应用是如何组成的有了更好的理解,qؓ开始真正的开发作好了准备。下一文章将带你看看pȝ讄?br />


Sha Jiang 2010-10-07 21:25 发表评论
]]>
Android = Java(?http://www.aygfsteel.com/jiangshachina/archive/2010/08/22/329582.htmlSha JiangSha JiangSun, 22 Aug 2010 11:49:00 GMThttp://www.aygfsteel.com/jiangshachina/archive/2010/08/22/329582.htmlhttp://www.aygfsteel.com/jiangshachina/comments/329582.htmlhttp://www.aygfsteel.com/jiangshachina/archive/2010/08/22/329582.html#Feedback0http://www.aygfsteel.com/jiangshachina/comments/commentRss/329582.htmlhttp://www.aygfsteel.com/jiangshachina/services/trackbacks/329582.htmlAndroid = Java
q期JavaC֌正热议Oracle对Google的R权诉|恰y前几日在java.net中看C?a >博文Q文章作者也借此事g表达了Android=Java的观炏V由于我对JavaUd开发、Android都没太关注过Q文章细l读来,有些许进益,译在此处Q可能对大家也有帮助?2010.08.22最后更?

    JavaC֌正忙于讨论Orace针对Google Androidq_的专利诉讹{我已在多个场合道出了我的观点,但还是需要一个评论性的文章来重复一下我在每个场合中都作出的相同评论...所以,本博文会我的想法竹{倒豆子般地和盘托出?br />
W八个千年问题QAndroid=JavaQ?/span>
    几日前,有声明称有研I者已证明了P!=NPQ这D了编E社Z的极大热?-臛_是直C天前Q当W一个评阅者指Z该证据中几处错误时。在我的计算机科学专业中我已学过q门课,但不能否认地是,我不懂高{数据以至于不能理解q些证明(P=NP?是克h学研I所的千年问题之一是一个很好的理由)。所以,让我们谈谈一个更为简单的{式Q?strong>Android是否{h于JavaQ?/strong>注意Q我说的不是{于Q而是{hQ就如同P=NP那样?br />
{h的类/字节码格?/span>
    在许多层面上QAndroid = Java是明显正的。Android应用使用Java语言~写Q用JDK中的javac~译?或其{h品,如ECJ)q行~译。这׃生了标准?Java字节?.class文g)。然后,q些文g被{化成Android?dex文gQ实际上是Javacȝ另一U不同格式的文g|了。但你也能将GIF囑փ转化成优质的PNG格式Q尽这两种囑փ文g的字节码完全不同,但它们都同样的优U?br />     {h的文件格式有大量的实现细节,常常是ؓ了优化。例如,如果我们不需要复杂且不同的跨框架压羃技术,仅仅是满于低效率的视频,我们p避免所有违反MPEGLA视频~码专利的麻烦了?br />     Android设计不同的类文gZ多种动机Q但l开Sun的知识权肯定是d。不怎样QGoogle不能q离Java。这两种cL件格式非常等仗它们只是在低层ơ的数据l构斚w不同Q但它们的语法是一致的Q也存储完全相同的信息。我可以肯定JavaSE或JavaME的VM能很Ҏ地在它的pȝcd载器中加入一?dex解析器去加蝲"Androidc??br />     Android SDK依赖?em>.java -> .class -> .dex
转换Q这一转换_于l节且是无损的?无损"是非帔R要:虽然GIF=PNGQ但有损的JPG文g则不能完全相{?-它不能解码出完全相同的信息。如?JVM和Dalvik真是完全独立的,你就很难写出一个相对简单的工具无妥协的d~译后的代码从一UŞ式{换到另一UŞ式:没有信息丢失Q当Z补偿在一个VM所拥有而在另一个VM却没有的重要Ҏ时Q{换后的文件不会变大;当按照一个VM的核心APId现另一个VM的核心APIӞ不需要额外的q行时层?br />     (我知道dx译器有多么的复杂。我已看q它的源代码。字节码译器很大,它是一个完整的反编?重编译器Q完全用SSA构徏。但q种译只是在理Z比较l微Q但在设计上Q从Java到Dalvik字节码的影射q是qx的。栈相对于寄存器架构只是在优化细节方面有所不同Q而在关键斚wQ如VM层的cdpȝQ则是一致的?/em>)

{h的虚拟机
    也能很容易的证明Dalvik=JVM。不仅仅是在源代码或字节码格式方面:它们的运行时对应部分也是如此。一旦Dalvik VM加蝲了一?Androidc?Q?strong>它走h像Javac,叫v来也像Javac?/strong>。如果你懂Java~程(能了解其高和底层细?Q你懂 Android~程。只是一个学习新API和框架理论的问题|了。它们是{h的系l?br />     q记得Microsoft?NET吗??NET被介l出来时QJavaC֌很快公开抨击.NET只是Java的翻版。当时我也在那群抨击的h中Q但现在我知道这么做会更好些。然?NET是一个庞大的ȝQC# 1.0语言。区别Q一语言E序的最方便Ҏ是风格规范--如,toString()相对?em>ToString()
。但在更关键的VM规范斚wQMicrosoft做了很好的功课。CLRQCLI和核心框枉完全不同于JavaQ所以我们不能说JVM=CLR。你不能使用一个简单的文g格式转换器工具作用于被编译的Javac,然后获得信息直接运行在Ua?NETq行时环境上?br />     惌证据吗?只要看看IKVM。这是一个非常有的目Q它能Java跨越~译q行?NET环境中,所以你的Java代码可不l过修改q行在CLR之上(或其它同{的.NETq行时环境,如Mono)...?a>IKVMq?strong>不是
一个简单的cdx文g转换器。对于Q何超qHelloWorld的应用程序,?Javacd其核心API适配转换?NET是非常复杂的。每个^台的内在Ҏ,像反,安全Qƈ发,异常处理Q字节码规范QI/O及其它核心APIQ在Ҏ上都非常相|但在l枝末节处则完全不同--让IKVM......Q则Java代码能运行在.NET VM上。这也需要一个非常庞大的额外的运行时层,基本上要把全部的OpenJDK源代码适配到JavaSE API。我q踪IKVM的开发已有多q了--通过阅读极棒?a >IKVM Blog--所以我有一个需要作出大量努力的好主意去Java代码和JavaSE应用适配?NET?该工作还没全完成Q已完成的部分则常有些性能问题?
    (旧有?strike>Visual J++ Visula J#q不是一个简单的Java-.NET解释器。我不会讨论它,但完全可以说Visual J#对Java的兼容要大大劣于哪怕是非常早期的IKVM版本?/em>)
    在讨Z我引入了P=NP的例子;有些人可能会引入囄{hQƈ说Q何图灵完备的q_/语言/VM都是怺{h的。确实如此,但和我们要讨论的问题q不相干。图灉|型过于通用Q如果仅按表面意思来使用它将会摧毁整个Y件专利系l?管q不是坏事!)。我们需要先在沙盘中勑֋出JVM{h的轮廓,与图늭L比,q更接近于实际需要。依我的观点Q无论是l微的二q制格式译Q甚至于上层的源代码和运行时兼容Q都可以明确地将Android|于Java{h的阵U中?br />
{h的API与运行时环境
    Android使用了许多JavaSE API的子集。这?来自于Harmony?API是全新的实现Q但它们JavaSE作ؓ模型。如果不是由于TCK协议的问题,Harmony甚至会获得JavaSE认证。ƈ不能改变Harmony与JavaSE API是完全等Lq一事实--q是故意ZQƈ非偶然。正如JRuby名hCharles Nutter最q写到的Q?br />     Android支持一个粗p?但庞大的)Java 1.5cd子集。这个子集够的大,只需要很的限制Q?strong>p使得如JRubyq般复杂的项目基本上无需修改可q行在Android?/strong>?br />     看v来,Dalvik_接近JVMQ它应该完全遵从大部分JVM的规范,包括完整及非常细节的JMM(Android支持Java风格的线E与q发Q直至高U的java.util.concurrent?。有太多"Dalvik是一个新的VM"?Dalvik不能q行Javac?的话(在讨问题?0%的博客和论坛中都会发现这La??br />
最后的思?/span>
    本篇q不是关于Oracle针对Google诉讼的是非曲直。我会忽略(可能会删?M跑题的评?不在Android=Javaq一论题之内)。对?Android与Java完全不相q?q一无意义的a论我只能表示厌恶QGoogle和Android的拥总必须扑ֈ比这更好的论证?br />     (当诉讼的全部l节和结果出来之前,对这一诉讼的将来我保留自己的全部判断。除非你有内部消?我没?Q?strong>请不要太天真?a >保持冷静Q我们真的不知道 Oracle或Google的全部意囑֒计划。自?007qGoogle首次发布Android(q导致了JavaME生态系l的极大分裂)Q虽?Sun十分愤怒但仍不得不夹着ַQ我们不知道q幕后的故事。我不会认同M价值数以十亿计Q且p东控制的公司所持的利己M的动机?/em>)
    我不认ؓGoogle创徏一个基于Java但偏Java甚远的^??NET所做的那样)是无竞争力的。在保持对已有Java代码和类库巨大兼Ҏ,Java人才及Java工具链之间的q性的意愿ӞDalvik和Android框架会让你获得尽可能多的好处?br />     昄QAndroid=Java不能在双斚w都包含进?不是双射)。每个^台都有一些独一无二?APIQ当ӞAndroid是一个完整的操作pȝQ它包括一个基于Linux的内核,囑Ş和电话栈Q等{。我昄只谈及普通的部分Q基于Java的用L?应用框架要依赖Java源代码和c?无论是哪U格式的)QAPI(包含C千计的通用JavaSE API)Q以及非常引人注目的cJava的虚拟机。对Android与其它Javaq_关系的准描q可能要使用到版本或评的概c我记得一个博客说q像"Android没有'J'"q样的话。好的,q不晚:我的是将Android的名UC改ؓJava GE(Java Google Edition)。这p一x逸地消除困惑;-)



Sha Jiang 2010-08-22 19:49 发表评论
]]>
վ֩ģ壺 պ| | ˮ| ī񹤿| | ɽ| Ͷ| | ͼ| | ء| | | | ˳| | ֶ| | Դ| | | ۶| | Ͳ| | | | γ| | ȳ| غ| ګ| | | | ʩ| ɽʡ| | ɽ| | |