Friday, 30 August 2013


Hibernate



  • Hibernate is a high-performance Object/Relational persistence and query service.
  • The most popular.
  • The most flexible and powerful Object/Relational solution on the market.
  • It provides data query and retrieval facilities that significantly reduce development time. Hibernate's design goal is to relieve the developer from 95% of common data persistence-related programming tasks by eliminating the need for manual, hand-crafted data processing using SQL and JDBC.
  • Hibernate is free software that is distributed under the GNU Lesser General Public License.
  •  Hibernate solves object-relational impedance mismatch problem.
  • Hibernate was started in 2001 by Gavin King as an alternative to using EJB2-style entity beans.



Benefits of Hibernate


  • The SQL code / statements in the application can be eliminated without writing complex JDBC / Entity Bean code.
  • Distributed transaction can simply be performed by using ORM tools.
  • Hibernate is an open source ORM tool and a robust framework to perform ORMapping.
  • Without much of SQL knowledge, one can master Hibernate easily.
  • Caching objects
  • Executing SQL statements later, when needed
  • Never updating unmodified objects
  • Efficient Collection Handling
  • Rolling two updates into one
  • Updating only the modified columns
  • Outer join fetching
  • Lazy collection initialization
  • Lazy object initialization
  • Transparent persistence & retrieval of objects
  • Persistence of associations and collections
  • Guaranteed uniqueness of an object (within a session).
  • O-R mapping using ordinary JavaBeans
  • Can set attributes using private fields or private setter methods
  • Lazy instantiation of collections (configurable)
  • Polymorphic queries, object-oriented query language
  • Cascading persist & retrieve for associations, including collections and many-to-many
  • Transaction management with rollback
  • Can integrate with other container-provided services


Drawbacks of Using Hibernate

  • High Level abstraction obscuring what is happening under the hood.
  • Runs on top of JDBC.
  • Support for Hibernate on Internet is not sufficient.
  • For complex data, mapping from Object-to-tables and vise versa reduces performance and increases time of conversion.
  • Anybody wanting to maintain application using Hibernate will need to know Hibernate.
  • Hiberna te does not allow some type of queries which are supported by JDBC .

Why Hibernate and not JDBC?

  • JDBC maps Java classes to database tables (and from Java data types to SQL data types)
  • Hibernate automatically generates the SQL queries.
  • Hibernate provides data query and retrieval facilities and can significantly reduce development time otherwise spent with manual data handling in SQL and JDBC.
  • Makes an application portable to all SQL databases.


If you want to learn more about the Hibernate ORM tool then you can visit to the Techknow Heights (www.tkhts.com) and can learn more about the Hibernate.


Thursday, 29 August 2013

Android is a Linux-based, Open Source Operating System specially designed for touchscreen mobile devices such as smartphones and tablet computers. Android was developed by the Open Handset Alliance : a consortium of hardware, software, and telecommunication companies devoted to advancing open standards for mobile devices, led by Google and other companies.

Android gives you a world-class platform for creating apps and games for Android users everywhere, as well as an open marketplace for distributing to them instantly.


The first beta version of Android Software Development Kit (SDK) was released by Google in 2007 where as the first commercial version, Android 1.0, was released in September 2008. The first Android-powered phone in the market was the G1 device manufactured by HTC, first sold in October 2008.


On July 24, 2013, Google release latest Android version, 4.3 Jelly Bean. Jelly Bean 4.3 is an extended version of Android version, 4.2 Jelly Bean, with Restricted profiles limit access to apps and content, Smart Bluetooth support, 3D realistic, high performance graphics powered by OpenGL ES 3.0, Internationalization and localization with additional language support features.



Features of Android

User Interface -  Android OS provides beautiful and interactive UI, it also provides other UI modules for special interfaces such as dialogs, notifications, and menus.

Handset layouts - Android platform is adaptable to larger, VGA, 2D graphics library, 3D Graphics library based on OpenGL ES 2.0 specification, and traditional smartphones layout.


Storage - SQLite, a lightweight relational database, is used for data storage purposes. 

Connectivity - Android supports connectivity technologies including GSM/EDGE, Bluetooth, Wi-Fi, IDEN, CDMA, EV-DO, UMTS, LTE, NFC and WiMAX.

Messaging - SMS and MMS are available as forms of messaging, including threaded text messaging and Android Cloud To Device Messaging (C2DM) and now enhanced version of C2DM, Android Google Cloud Messaging (GCM) is also a part of Android Push Messaging service.

Multiple language support - Android supports multiple languages.

Web browser - The web browser available in Android is based on the open-source WebKit layout engine, coupled with Chrome's V8 JavaScript engine. 

Java support - While most Android applications are written in Java, there is no Java Virtual Machine in the platform and Java byte code is not executed. Java classes are compiled into Dalvik executables and run on Dalvik, a specialized virtual machine designed specifically for Android and optimized for battery-powered mobile devices with limited memory and CPU. J2ME support can be provided via third-party applications.


Medial support - Android supports the following audio/video/image media formats: MP3, MPEG-4 SP, WebM, H.263, H.264, AAC, HE-AAC (in 3GP or MP4 container), AMR, AMR-WB (in 3GP container), MIDI, Ogg Vorbis, FLAC,

WAV, JPEG, PNG, GIF, BMP, WebP.

Streaming media support - RTP/RTSP streaming (3GPP PSS, ISMA), HTML progressive download (HTML5 <video> tag). Adobe Flash Streaming (RTMP) and HTTP Dynamic Streaming are supported by the Flash plugin. Apple HTTP Live Streaming is supported by RealPlayer for Android, and by the operating 
system in Android 3.0 (Honeycomb) 

Additional hardware support - Android can use video/still cameras, touchscreens, GPS, gyroscopes, barometers, accelerometers, magnetometers, dedicated gaming controls, proximity and pressure sensors, thermometers, accelerated 2D bit blits (with hardware orientation, scaling, pixel format conversion) and accelerated 3D graphics.


Multi-touch - Android has native support for multi-touch which was initially made available in handsets such as the HTC Hero. The feature was originally disabled at the kernel level (possibly to avoid infringing Apple's patents on touch-screen technology at the time). Google has since released an update for the Nexus One and the Motorola Droid which enables multi-touch natively


Bluetooth - Supports A2DP, AVRCP, sending files (OPP), accessing the phone book (PBAP), voice dialing and sending contacts between phones. Keyboard, mouse and joystick (HID) support is available in Android 3.1+, and in earlier versions through manufacturer customizations and third-party applications


Video calling - Android does not support native video calling, but some handsets have a customized version of the operating system that supports it, either via the UMTS network (like the Samsung Galaxy S) or over IP. Video calling through Google Talk is available in Android 2.3.4 and later. Gingerbread allows Nexus S 

to place Internet calls with a SIP account. This allows for enhanced VoIP dialing to other SIP accounts and even phone numbers. Skype 2.1 offers video calling in Android 2.3, including front camera support. Users with the Google+ android app can video chat with other google+ users through hangouts.

Multitasking - Multitasking of applications, with unique handling of memory allocation, is available


Accessibility - Built in text to speech is provided by Talk back for people with low or no vision. Enhancements for people with hearing disabilities is available as is other aids.


Voice based features - Google search through voice has been available since initial release. Voice actions for calling, texting, navigation, etc. are supported on Android 2.2 onwards. As of Android 4.1, Google has expanded Voice Actions with the ability to talk back and read answers from Google's Knowledge Graph when queried with specific commands. The ability to control hardware has not yet been implemented.


Tethering - Android supports tethering, which allows a phone to be used as a wireless/wired Wi-Fi hotspot. Before Android 2.2 this was supported by third-party applications or manufacturer customizations.


Screen capture - Android supports capturing a screenshot by pressing the power and volume-down buttons at the same time. Prior to Android 4.0, the only methods of capturing a screenshot were through manufacturer and third-party customizations or otherwise by using a PC connection (DDMS developer's tool). These alternative methods are still available with the latest Android.


External storage - Most Android devices include microSD slot and can read microSD cards formatted with FAT32, Ext3 or Ext4 file system. To allow use of high-capacity storage media such as USB flash drives and USB HDDs, many Android tablets also include USB 'A' receptacle. Storage formatted with FAT32 is handled by Linux Kernel VFAT driver, while 3rd party solutions are required to handle other popular file systems such as NTFS, HFS Plus and exFAT


For More Details to Learn Android Please refer Techknow Heights , here you will get more information and practical examples to Learn and implement Android.