Get Paid To Promote, Get Paid To Popup, Get Paid Display Banner

Wednesday, November 30, 2011

Sony Vaio VPCEB (VPCEB26GM) Windows 7 Driver

Driver for windows 7 32-bit.

CHIPSET:
1. Intel chipset installation utility:
Download

2. Intel ahci 5 port 4 Driver
Download

AUDIO:
Realtek HD audio driver
Download

VIDEO/Graphic
Intel HD graphic driver
Download

WIFI/WIRELESS:
File Description Intel® Centrino® Advanced-N 6200 AGN Driver
Download

TOUCPAD:
Alps Touchpad Driver
Download

ETHERNET/LAN
Marvell® Yukon 88E8057 PCI-E Gigabit Ethernet Controller Driver
Download

CARD READER/MEMORY STICK
Download both and install:
Ricoh card reader driver
Download 1: Download
Download 2: Download

WEBCAM:
Webcam Driver: Download
Webcam Application: Download

This is a suggestion base on specification, to those who test please leave your feedback so i can improve this post. Any comments and recommendation are really appreciated.
you also can help by install EVEREST, run and send the report so that the data from the report can be use to get the more accurate and proper driver.

Monday, November 28, 2011

Games Coming to Android Market in Korea



[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]



In the 24 months since the first Android device became available locally, Korea has quickly become one of the top countries in Android device activations. In parallel, we’ve also seen tremendous growth in app downloads from Android Market. Korea is now the second-largest consumer of apps worldwide. Today we are adding to this momentum by bringing games to Android Market in Korea.



Starting right away, Android users in Korea can explore the many thousands of popular game titles available in Android Market and download them onto their devices. For paid games, purchasing is fast and convenient through direct carrier billing, which lets users in Korea easily charge their purchases to their monthly mobile operator bills.



If you are a game developer, now is the time to localize your game resources, app descriptions, and marketing assets to take advantage of this new opportunity. When you are ready, please visit the Android Market developer console to target your app for distribution in South Korea and set prices in Korean Won (KRW). If you don’t want to distribute to Korea right away, you can also exclude it.



With the huge popularity of games on Android and the convenience of direct carrier billing in Korea, we expect to see a jump in game purchases and downloads in the weeks ahead. For game developers worldwide, it’s “game on” in Korea!

Wednesday, November 23, 2011

Acer Aspire 4730z Windows 7 Drivers

MIRROR LINK IS IN UPLOADING PROCESS....

CHIPSET:
Intel Chipset Installation utility GM45
Download (direct link)
Download (miror link)

AUDIO:
Realtek High Definition Audio Driver version 6.0.1.5904
Download (direct link)
Download (mirror link)

GRAPHIC:
There are  graphic driver which is ATI and Intel.

1. Intel HD Video Driver
Download (direct link)
Download (mirror link)

2. ATI radeon Graphic driver.
Download (direct link)
Download (mirror link)

WIRELESS:
There are  wireless to choose, choose only , if the wireless driver work after windows  installation, no need to install this driver.

Intel
Download (direct link)
Download (mirror link)

Atheros
Download (direct link)
Download (mirror link)

Ralink
Download (direct link)
Download (mirror link)

Broadcom
Download (direct link)
Download (mirror link)

BLUETOOTH:
Broadcom Bluetooth Driver (2045 and 2046)
Download (direct link)
Download (mirror link)

WEBCAM:
There are  applicable driver here, choose one of them, normally both work but you can try which one  work best with your model

1. Bison Camera driver for 0.3
Download (direct link)
Download (mirror link)

1. Suyin Camera driver for 1.0
Download (direct link)
Download (mirror link)

LAN/ETHERNET:
Realtek gigabit Ethernet driver (RTL8111C)
Download (direct link)
Download (mirror link)

CARD READER:
Jmicron Card Reader Driver (JMB385)
Download (direct link)
Download (mirror link)

MODEM:
LSI Soft Modem
Download (direct link)
Download (mirror link)

TOUCHPAD
Install both touchpad driver.

1. ALPS Touchpad Driver
Download (direct link)
Download (mirror link)

2. Synaptics Touchpad Driver
Download (direct link)
Download (mirror link)

ADDITIONAL INFO:

ATI RADEON HD GRAPHIC DRIVER
-support the following series - 2400 , 2600 3400 3470 3650 4330 4570 4650 4670

INSTALLATION:
you need to extract each downloaded driver, and then run setup file in the extracted folder.

IMAGES:




SPECIFICATIONS:



Processor Intel® Pentium® dual-core mobile processor T3200 (1 MB L2 cache, 2.0 GHz, 667 MHz FSB, 35 W), supporting Intel® 64 architecture
Mobile Intel® GL40 Express Chipset
Acer InviLink™ Nplify™2, 3, 802.11b/g/Draft-N WiFi CERTIFIED® network connection, supporting Acer SignalUp™ wireless technology
Acer InviLink™3 802.11b/g WiFi CERTIFIED® network connection, supporting Acer SignalUp wireless technology
Operating System Linux
VGA 14.1″ WXGA high-brightness (200-nit) Acer CrystalBrite TFT LCD, 1280 x 800 pixel resolution, supporting simultaneous multi-window viewing via Acer GridVista
16 ms response time
Memory Dual-channel DDR2 SDRAM support
2 GB of DDR2 667 MHz memory, upgradeable to 4 GB using two soDIMM modules6
Graphics Mobile Intel® GL40 Express Chipset with integrated 3D graphics, featuring Intel® Graphics Media Accelerator 4500M (Intel® GMA 4500M) with up to 1759 MB of Intel® Dynamic Video Memory Technology 5.0 (64 MB of dedicated video memory, up to 1695 MB of shared system memory), supporting Microsoft DirectX® 10
Dual independent display support
16.7 million colors
External resolution/refresh rate:
2048 x 1536: 75/60 Hz
1920 x 1440: 85/75/60 Hz
1920 x 1200: 75/60 Hz
1920 x 1080: 100/85/75/60 Hz
1680 x 945: 100/85/75/60 Hz
1600 x 1200: 120/100/85/75/60 Hz
1600 x 900: 120/100/85/75/60 Hz
1400 x 1050: 85/75/60 Hz
1366 x 768: 85/75/60 Hz
1280 x 1024: 120/100/85/75/60 Hz
1280 x 960: 85/75/60 Hz
1280 x 768: 85/75/60 Hz
1280 x 720: 100/85/75/60 Hz
1024 x 768: 120/100/85/75/60 Hz
800 x 600: 120/100/85/72/60 Hz
MPEG-2/DVD decoding
WMV9 (VC-1) and H.264 (AVC) decoding
Acer Arcade™ Deluxe featuring Acer CinemaVision™ and Acer ClearVision™ technologies7
Audio Two built-in stereo speakers
High-definition audio support
MS-Sound compatible
Built-in microphone
Storage One 160 GB or larger hard disk drive8
5-in-1 card reader, supporting Secure Digital#153; (SD), MultiMediaCard (MMC), Memory Stick® (MS), Memory Stick PRO#153; (MS PRO), xD-Picture Card™ (xD)
Optical Disk Drive 8X DVD-Super Multi double-layer drive:
Read: 24X CD-ROM, 24X CD-R, 24X CD-RW, 8X DVD-ROM, 8X DVD-R, 8X DVD+R, 6X DVD-ROM DL (double-layer), 6X DVD-R DL (double-layer), 6X DVD+R DL (double-layer), 6X DVD-RW, 6X DVD+RW, 5X DVD-RAM
Write: 24X CD-R, 16X CD-RW, 8X DVD-R, 8X DVD+R, 4X DVD-R DL (double-layer), 4X DVD+R DL (double-layer), 6X DVD-RW, 8X DVD+RW, 5X DVD-RAM
Communication Acer Video Conference featuring:
Integrated Acer Crystal Eye webcam supporting enhanced Acer PrimaLite™ technology1
WLAN1, 3: Acer InviLink™ Nplify™2 802.11b/g/Draft-N WiFi CERTIFIED® network connection, supporting Acer SignalUp™ wireless technology
WLAN1, 3: Acer InviLink™ 802.11b/g WiFi CERTIFIED® network connection, supporting Acer SignalUp™ wireless technology
WPAN: Bluetooth® 2.0+EDR (Enhanced Data Rate)
LAN: Gigabit Ethernet, Wake-on-LAN ready
Modem: 56K ITU V.92 with PTT approval9, Wake-on-Ring ready
Dimensions and weight 340.4 (W) x 247 (D) x 22.9/42.3 (H) mm (13.4 x 9.7 x 0.9/1.6 inches)
2.4 kg (5.29 lbs.) with 6-cell battery
Power Supply ACPI 3.0 CPU power management standard: supports Standby and Hibernation power-saving modes
48.8 W 4400 mAh 6-cell Li-ion battery pack:
Upto 3.0-hour battery life10
2.5-hour rapid charge system-off
3.5-hour charge-in-use
3-pin 65 W AC adapter
ENERGY STAR 4.0
I/O Ports ExpressCard™/54 slot
5-in-1 card reader (SD™, MMC, MS, MS PRO, xD)
Two USB 2.0 ports
External display (VGA) port
Headphone/speaker/line-out jack
Microphone-in jack
Line-in jack
Ethernet (RJ-45) port
Modem (RJ-11) port
DC-in jack for AC adapter
Keyboard 88-/89-/93-key keyboard with inverted “T” cursor layout, 2.5 mm (minimum) key travel
Touchpad pointing device
12 function keys, four cursor keys, two Windows® keys, hotkey controls, embedded numeric keypad, international language support, independent US dollar and Euro symbol keys
Empowering Key
Easy-launch buttons: WLAN, Bluetooth, volume up and down
Media keys: Play/pause, stop, previous, next
Software Acer Empowering Technology (Acer ePower, eDataSecurity1, eRecovery, eSettings Management)
Acer Arcade™ Deluxe1 featuring Cinema, Album, Music, HomeMedia
Acer Crystal Eye1
Acer GridVista™
Acer Launch Manager
Acer GameZone1
Acer Video Conference Manager1
Adobe® Reader®
McAfee® Internet Security Suite
NTI Media Maker™
Microsoft® Works 8.5 with Office Home and Student 2007 Trial
Options and Items Acer Xpress VoIP phone and Acer Video Conference Manager pack
512 MB/1 GB/2 GB DDR2 667 MHz soDIMM module
6-cell Li-ion battery pack
3-pin 65 W AC adapter
External USB floppy disk drive

Tuesday, November 22, 2011

Making Android Games that Play Nice

[This post is by Ian Ni-Lewis, a Developer Advocate who devotes most of his time to making Android games more awesome. — Tim Bray]

Making a game on Android is easy. Making a great game for a mobile, multitasking, often multi-core, multi-purpose system like Android is trickier. Even the best developers frequently make mistakes in the way they interact with the Android system and with other applications — mistakes that don’t affect the quality of gameplay, but which affect the quality of the user’s experience in other ways.

A truly great Android game knows how to play nice: how to fit seamlessly into the system of apps, services, and UI features that run on Android devices. In this multi-part series of posts, Android Developer Relations engineers who specialize in games explain what it takes to make your game play nice.

I: The Audio Lifecycle (or, why is there music coming from my pants?)

One of the most awesome things about Android is that it can do so much stuff in the background. But when apps aren’t careful about their background behaviors, it can get annoying. Take my own personal pet peeve: game audio that doesn’t know when to quit.

The problem

I’m on the bus to work, passing the time with a great Android game. I’m completely entranced by whatever combination of birds, ropes, and ninjas is popular this week. Suddenly I panic: I’ve almost missed my stop! I leap up, quickly locking my phone as I shove it into a pocket.

I arrive breathless at my first meeting of the day. The boss, perhaps sensing my vulnerability, asks me a tough question. Not tough enough to stump me, though — I’ve got the answer to that right here on my Android phone! I whip out my phone and press the unlock button... and the room dissolves in laughter as a certain well-known game ditty blares out from the device.

The initial embarrassment is bad enough, but what’s this? I can’t even mute the thing! The phone is showing the lock screen and the volume buttons are inactive. My stress level is climbing and it takes me three tries to successfully type in my unlock code. Finally I get the thing unlocked, jam my finger on the home button and breathe a sigh of relief as the music stops. But the damage is done — my boss is glowering and for the rest of the week my co-workers make video game noises whenever they pass my desk.

What went wrong?

It’s a common mistake: the developer of the game assumed that if the game received an onResume() message, it was safe to resume audio. The problem is that onResume() doesn’t necessarily mean your app is visible — only that it’s active. In the case of a locked phone, onResume() is sent as soon as the screen turns on, even though the phone’s display is on the lock screen and the volume buttons aren’t enabled.

Fixing this is trickier than it sounds. Some games wait for onWindowFocusChanged() instead of onResume(), which works pretty well on Gingerbread. But on Honeycomb and higher, onWindowFocusChanged() is sent when certain foreground windows — like, ironically, the volume control display window — take focus. The result is that when the user changes the volume, all of the sound is muted. Not the developer’s original intent!

Waiting for onResume() and onFocusChanged() seems like a possible fix, and it works pretty well in a large number of cases. But even this approach has its Achilles’ heel. If the device falls asleep on its own, or if the user locks the phone and then immediately unlocks it, your app may not receive any focus changed messages at all.

What to do about it

Here’s the easy two-step way to avoid user embarrassment:

  1. Pause the game (and all sound effects) whenever you receive an onPause() message. When gameplay is interrupted — whether because the phone is locked, or the user received a call, or for some other reason — the game should be paused.

  2. After the game is paused, require user input to continue. The biggest mistake most game developers make is to automatically restart gameplay and audio as soon as the user returns to the game. This isn’t just a question of solving the “music over lock screen” issue. Users like to come back to a paused game. It’s no fun to switch back to a game, only to realize you’re about to die because gameplay has resumed before you expected it.

Some game designers don’t like the idea of pausing the background music when the game is paused. If you absolutely must resume music as soon as your game regains focus, then you should do the following:

  1. Pause playback when you receive onPause().

  2. When you receive onResume():

    1. If you have previously received an onFocusChanged(false) message, wait for an onFocusChanged(true) message to arrive before resuming playback.

    2. If you have not previously received an onFocusChanged(false) message, then resume audio immediately.

  3. Test thoroughly!

Fixing audio embarrassments is almost always a quick and easy process. Take the time to do it right, and your users will thank you.

Thursday, November 17, 2011

DELL Inspiron N4050 Windows Vista and Windows 7 Driver

FOR Windows XP Driver follow this LINK

LAN/ETHERNET:
Realtek RTL8111E-VB Gigabit Ethernet Controller, RTL8105E-VB 10/100 Ethernet Controller
Download (vista)
Download (windows 7)

MEI:
Intel Management Interface
Downlod (Vista, XP and 7)

GRAPHIC/VGA:

1. Ati Radeon HD6470 Driver
Download (vista)
Download (windows 7)

2. Ati Radeon HD6450 Driver
Download (vista and windows 7 32-bit)
Download (Windows 7)

3. Intel HD Graphic
Download (vista)
Download (windows 7 32-bit)
Download (windows 7 64-bit)

MODEM:
Conexant D400,External USB 56K Modem
Download (xp, vista and 7 32-bit) - modem diagnostic tools

APS:
Intel Turbo Boost Monitor:
Download (vista and 7)
Download (xp vista 7and 7 64-bit) - modem diagnostic tools
Download (Windows 7 32-bit)
Download (Windows 7-64bit)

BLUETOOTH:
Dell Wireless 1701 Bluetooth v3.0+HS
Download (vista and windows 7)

WIRELESS:
Dell Wireless 1701 802.11 b/g/n, Wireless WLAN 1501 Half Mini-Card
Download (vista and windows 7)

AUDIO:
IDT High definition Audio Driver
Download (Windows XP Vista and 7)

DELL Inspiron N4050 Windows XP Driver

This model built for windows 7 and work best with Windows 7 Operating system, Even i can compose the driver for wiondows XP but there are problem with the graphic card which is ATI Radeon HD6470.

CHIPSET:
Intel Chipset Driver (inf_9.2.0.1015)
Download

MEI
Intel (R) Management Engine Interface
Download

AUDIO:
IDT 92HD87B1 High Definition Audio Driver
Download

GRAPHIC:
Intel HD Graphic Driver
Download (32-bit)
Download (64-bit)

ATI  Radeon HD6470M
This one is a problem where the are no drivers yet seem to be work with this devices, even after the installation you \will get one driver not installed in the device manager.

The hardware ID for this model is: PCI\VEN_1002&DEV_6760&SUBSYS_05031028

Since i can say it is new and the driver released in 2011 , i need help from others that success installed the driver for this device. As for now, the only best suggestion i can give is using mod tools and i can't confirm it will solve your problems. Another thing is i love to text this with eembeded driver which originally for 6970M, but i dun have the model here.
 
WIRELESS:
Broadcom Wireless 1701 802.11b/g/n
Download


WIRELESS INSTALLATION:
1. Download the driver and extract it.
2. Remember where you extract it .
3. Click START and select RUN, type DEVMGMT.MSC and press enter.
4. A device manager  will open, right click on the network marked with yellow and select UPDATE DRIVER.
5. Driver Update wizard will appear, select no if it asked to connect to the internet. NEXT.

6. Select ADVANCE, click browse and browse to the driver folder you extracted earlier and continue with on screen instruction.
(if not working)
7. On step 6 don;t select browse but select the last option "DONT SEARCH, I WILL CHOOSE THE DRIVER TO INSTALL"
8. Select have disk and browse to the folder we extracted earlier. Then select bcmwl5.inf, OK and continue with on-screen instruction.

ETHERNET:
Realtek Ethernet Driver
Download

ETHERNET INSTALLATION:
1. Download the driver and extract it.
2. Remember where you extract it .
3. Click START and select RUN, type DEVMGMT.MSC and press enter.
4. A device manager  will open, right click on the network marked with yellow and select UPDATE DRIVER.
5. Driver Update wizard will appear, select no if it asked to connect to the internet. NEXT.
6. Select ADVANCE, click browse and browse to the driver folder you extracted earlier and continue with on screen instruction.
(if not working)
7. On step 6 don;t select browse but select the last option "DONT SEARCH, I WILL CHOOSE THE DRIVER TO INSTALL"
8. Select have disk and browse to the folder we extracted earlier. Then select Netrtle.inf, OK and continue with on-screen instruction.


CARD READER:
Realtek RTS5138 Card Reader Driver
Download


TOUCHPAD
Dell Touchpad  Driver
Download

BLUETOOTH:
Broadcom Bluetooth Driver
Download




EXTRA NOTES:
1. CHIPSET: The driver compatible with both winddows Xp and Windows 7. 
2. Dell QuickSet Application is a hotkey driver software, but this features only applicable for windows vista and windows 7.
 

Saturday, November 12, 2011

Compaq Presario F730EE Windows XP Driver

NOTE:
1. Please install according to order
2. there is no official support from hp for this driver so you have to install audio manually.

Chipset Driver:
Nvidia Nforce Chipset Driver

ftp://ftp.hp.com/pub/softpaq/sp33001-33500/sp33031.exe
or
Nvidia nForce 630a - Windows XP/2000
Version: 14.10
Release Date: May 3rd, 2007
Download
or
Download


GRAPHIC:

nVIDIA GeForce 7000M Video Adapter
NVIDIA 32bit ForceWare GeForce Go 156.55
Download

WIRELESS
Broadcom Wireless Driver (sp37950.exe)
Download

AUDIO/SOUND

Before installing audio driver, you need to install MS-UAA frist and restart.
1. MS UAA(required with a reboot before Conexant):
Download



Then Install the audio
Conexant SmartAudio 221:
ftp://ftp.hp.com/pub/softpaq/sp34001-34500/sp34200.exe

 
Install the audio driver and ignore if there is an error.
1. Click on Start and select Run. Type DEVMGMT.MSC and press enter.
2. Right click on "Audio device on High Definition Audio Bus" and click Update driver.
3. Select "Install from a list or specific location"
4. Click Next. Then select "Don't search, I will choose the driver to install"
5. Click Next and then select "Sound, video and game controller".
6. Click Next and then click Have Disk.
7. Click Browse C:\swsetup\sp34200 folder and select the .inf (wis30b2a) file and click open and Continue with the onscreen instructions.

Ignore XP when it complains.
Reboot.
 

BUTTON:
HP Quick Launch
Download



CARD READER:
Ricoh 5 in 1 Card reader Driver:
R5C832/843 RICOH Controller
Download (direct)
Download (mediafire)


LAN/ETHERNET:
Normally the ethernet will automatically installed after chipset driver installation, if not try this driver:
Download
Note: (DO THIS IF NO LAN DRIVER INSTALLED AFTER CHIPSET DRIVER INSTALLATION)

1. extract the file.
2. Open device manager and look for network mark with yellow.
3. Right click and select update driver.
4. Select no to connect and select advance.
5. Browse to the driver folder extracted earlier. Continue with on-screen instruction.


MODEM:
Conextant Modem Driver
Download (sp33742) 
or
Download (sp37817)

(if direct install failed, install using the same method as audio installation)

Compaq Presario F730EE Windows 7 Driver

CHIPSET:
NVIDIA nForce Chipset Driver
Download

AUDIO:
If there are sound in your laptop, you dont have to install this drivers
Conexant High-Definition Smart Audio 221 Driver
Download

If there are still no sound, go to audio properties, enable the speaker as default.

MODEM:
Conexant HDAUDIO Soft Data Fax Modem with SmartCP Driver
Download

GRAPHIC
NVIDIA GeForce Go 6100 (UMA)
You should run Windows Update to Install the Drivers, on the Optional updates tick on the Box for Nvidia 7000 nForce 630.

CARD READER
Ricoh 5 in 1 Card Reader:
Download

Others should Automatically Installed.

BACKUP:

Normally other drivers automatically install, in case there are several other drivers not installed try this:

Ethernet normally use Nvdia Ethernet and no need to install, it install along with tyhe chipset installation
ETHERNET:
RTL8100B(L)/RTL8100C(L)/RTL8101L/RTL8139C(L)
RTL8139C(L)+/RTL8139D(L)/RTL8100(L)
RTL8130/RTL8139B(L)
Here is original HP Driver:
Download

And this the driver from realtek:
Download
on the page select: Win7 32/64 Auto Installation Program (SID:1354639)
Download (mediafire)

Cyberlink Youcam software:
this si driver from vista, normally you don't need to install thsi, just try to use webcam from any messenger software, your video work fine i think.
Download

HP Quiclauch Button:
Download

Wireless:
It will automatically installed after windows 7 installation.

Note that for this model i strongly recommend to use windows 7 32 bit Ultimate because there are problem to install audio with other version. Microsoft windows 7 will detect the driver installed and work properly, but you will not have sound.
I already tested with home premium version, after restart no sound

Compaq Presario C776NR Windows XP Driver

This model of Presario has an audio controller that supports the high definition audio. You need to have Microsoft Universal Audio Architecture (UAA) Bus Driver for high Definition Audio installed on the computer before installing the audio driver. Here is the link for the Microsoft Universal Audio Architecture Driver that need to be installed before installing the audio driver:

Microsoft Universal Audio Architecture (UAA) Bus Driver for high Definition Audio
  ftp://ftp.hp.com/pub/softpaq/sp33501-34000/sp33867.exe

Conexant Smart Audio 221 Driver:
http://www.mediafire.com/?iymjlwaannn

Installtion guide:
1. Unzip to a folder..make note of location.
2. From Device Manager,right click "Audio Device on HD", choose Update driver > No to connect > 3. Install from a list or specific location > Select Don't Search, I will choose the driver to install > For the Hardware Type select 'Show All Devices'
4. Remove the check from "Show Compatible Hardware" and click on "Have Disk" > Next...browse to the unzipped folder and choose the "WiSVHe5.inf" > Ignore XP when it complains

Now reboot the system.
1. Click on Start and select Run. Now type devmgmt.msc and press enter.
2. Right click on "Audio device on High Definition Audio Bus" and click Update driver.
3. Select "Install from a list or specific location"
4. Click Next. Then select "Don't search, I will choose the driver to install"
5. Click Next and then select "Sound, video and game controller" from the list.
6. Click Next and then click Have Disk.
7. Click Browse C:\swsetup\spXXXXX folder and the double click the V32 folder. Select the .inf file, click open and Continue with the onscreen instructions.

Similarly install Modem Drivers:
Conexant CX20548 Modem Driver:
ftp://ftp.hp.com/pub/softpaq/sp36001-36500/sp36089.exe
1.Right click on "Modem device on High Definition Audio Bus" and click Update driver.
2. Select "Install from a list or specific location"
3. Click Next. Then select "Don't search, I will choose the driver to install"
4. Click Next and then select "Modem" from the list.
5. Click Next and then click Have Disk.
6. Click Browse C:\swsetup\spXXXXX folder and select the .inf file and click open and Continue with the onscreen instructions.

Video Driver:
http://www.mediafire.com/?aai7y85g6xai82g

Chipset Driver:
http://downloadmirror.intel.com/13799/eng/ChipUtil.exe

Realtek RTL8100CL/RTL8110Sb NIC (LAN) Driver:
ftp://ftp.hp.com/pub/softpaq/sp30001-30500/sp30156.exe

Both Intel Pro Wireless and BroadCom wireless drivers are given below. Please try the other, if one does not work.
Intel Pro Wireless Driver:
ftp://ftp.hp.com/pub/softpaq/sp33001-33500/sp33404.exe
or
BroadCom Wireless Driver:
ftp://ftp.hp.com/pub/softpaq/sp32001-32500/sp32156.exe
or
Atheros Ar5006:
http://www.atheros.cz/download.php?atheros=AR5006EG&system=1

Quick Launch Button Driver:
ftp://ftp.hp.com/pub/softpaq/sp38001-38500/sp38171.exe

Synaptics Touchpad Drivers:
ftp://ftp.hp.com/pub/softpaq/sp35001-35500/sp35444.exe

HP Help and Support for Microsoft Windows XP:
ftp://ftp.hp.com/pub/softpaq/sp36501-37000/sp36545.exe

SPECS:
Compaq Presario c776nr 15.4" Notebook PC T2390, 3072MB Memory, 160GB
Compaq Presario c776nr 15.4 Notebook PC T2390, 3072MB...
Deal Price: $499.99





Product Description:
Compaq Presario c776nr 15.4" Notebook PC

Powered by an Intel Pentium Dual-Core Processor T2390, 3072MB Memory, 160GB Hard Drive, SuperMulti DVD Burner, Integrated Webcam & Mic,.

Friday, November 11, 2011

Updated NDK for Android 4.0

Today we are releasing an updated version of the Android NDK, now in revision 7. The updated NDK lets developers who are using native code get started with the new native APIs available in Android 4.0.

Android NDK r7 includes a number of build system improvements and bug fixes, but most importantly it gives you access to two new sets of APIs:

Low-level streaming multimedia: A new API based on Khronos OpenMAX AL 1.0.1 provides a direct, efficient path for low-level streaming multimedia. The new path is ideal for applications that need to maintain complete control over media data before passing it to the platform for presentation. For example, media applications can now retrieve data from any source, apply proprietary encryption/decryption, and then send the data to the platform for display.

Audio decoding into PCM: Extensions to the existing native audio API based on Khronos OpenSL ES let native apps decode compressed audio assets to PCM format.

For detailed information about how to use these new APIs, please see the documentation included with the Android NDK r7 package. To read about the build system improvements and bug fixes included in this release, check out the release notes.

Thursday, November 10, 2011

Download Fancy Characters Version: 4.2.4 for blackberry for free

Download Fancy Characters Version: 4.2.4 for blackberry .jad .alx
Go to Download page »

Download IM+ Version: 9.1.1 for blackberry for free

Download IM+ Version: 9.1.1 for blackberry .jad .alx
Go to Download page »

Download BeejiveIM Version: 2.6.1 for blackberry for free

Download BeejiveIM - instant messaging anywhere .jad .alx
Go to Download page »

Download Text Smiley Version: 1.5.0 for blackberry for free

Download Text Smiley Version: 1.5.0 for blackberry .jad .alx
Go to Download page »

Download Lock for BlackBerry Messenger v2.5.0 for blackberry for free

Download Lock for BlackBerry Messenger Version 2.5.0 .jad .alx
Go to Download page »

Download AOL Instant Messenger Version: 2.5.69 for blackberry for free

Download AOL Instant Messenger v2.5.69 for blackberry .jad .alx
Go to Download page »

Download mChat Version: 1.2.0 for blackberry for free

Download mChat Version: 1.2.0 for blackberry .jad .alx
Go to Download page »

Download Nimbuzz Version: 1.3.71 for blackberry for free

Download Nimbuzz Version: 1.3.71 for blackberry .jad .alx
Go to Download page »

Download Google Talk Version: 2.5.108 for blackberry for free

Download Google Talk v2.5.108 for blackberry .jad .alx
Go to Download page »

Download Chat on Facebook Free Version: 2.0.116 for blackberry

Download Chat on Facebook Free v2.0.116 .jad .alx
Go to Download page »

Download Color ID Version: 2.0.8 for blackberry for free

Download Color ID - free! LED Light for blackberry .jad .alx
Go to Download page »

Download Fancy Smiley Version: 2.0.0 for BlackBerry for free

Download Fancy Smiley v2.0.0 for BlackBerry .jad .alx
Go to Download page »

Download Chat for Facebook Pro version 2.70.0 for blackberry for free

Download Chat for Facebook Pro v2.70.0 .jad .alx
Go to Download page »

Download Free A+ Chat for Facebook Version: 2.2.1 for blackberry for free

Free A+ Chat for Facebook with Emoticon .jad
Go to Download page »

Download Easy Smiley Pack version 2.0.13 for BlackBerry for free

Download Easy Smiley Pack v2.0.13 .jad .alx
Go to Download page »

New Layout Widgets: Space and GridLayout

[This post is by Philip Milne, who is part of the Android framework team. — Tim Bray]

Ice Cream Sandwich (ICS) sports two new widgets that have been designed to support the richer user interfaces made possible by larger displays: Space and GridLayout.

The most commonly used class for layout in Android is LinearLayout, which allows its children to be aligned in the usual ways: along either the horizontal or vertical axes. It’s often possible to take a complicated layout and break it down into a set of nested linear layouts and, provided this nesting doesn’t get too deep, this is still a good choice for many simple layouts.

A number of posts and articles (e.g. Android Layout Tricks #1, Flattening The Stack) have highlighted drawbacks of nested layouts; which fall into three basic categories:

  • Inability to control alignment along both axes simultaneously

  • Performance problems in hierarchies that are too deep

  • Unsuitability for design tools that support free-form editing

A simple example of the first problem is the following form:

As the font and the text of the “Email address” label change, we want the label to remain aligned with the baseline of the component to its right, and aligned with the right edge of the label below it. It’s not possible to do this with nested LinearLayouts because the label needs to be aligned with other components both horizontally and vertically.

These problems aren’t new to Android, or UI toolkits in general, but we’ve used them to drive our work in enriching platform support for flatter hierarchies.

GridLayout

To provide better support for layouts like these we have added a new layout to the Android framework: GridLayout, which can be used to solve the above problems by dividing the container’s real estate into rows and columns:

Now the “Email address” label can belong both to a row that is baseline-aligned, and a column that is right-aligned.

GridLayout uses a grid of infinitely-thin lines to separate its drawing area into: rows, columns, and cells. It supports both row and column spanning, which together allow a widget to occupy a rectangular range of cells that are next to each other. We’ll use the words row, column, and cell in the text below as shorthand for row group, column group and cell group respectively, where groups have one or more contiguous elements.

Similarities with LinearLayout

Wherever possible, GridLayout uses the same conventions as LinearLayout for all its XML API — so it should be easy to start using GridLayout if you’ve already used LinearLayout. In fact, the APIs are so similar that changing a tag name from LinearLayout to GridLayout in an XML file that uses LinearLayout will often produce a similar UI without requiring any other changes. When it doesn’t, you’ll still generally end up with a good starting point for a two-dimensional layout.

Getting Started

Two examples in the samples area of the Android 4.0 SDK show typical use of the programmatic and XML APIs respectively:

[Both examples produce the same UI.]

Here’s a slightly simpler version of the above XML layout.

<?xml version="1.0" encoding="utf-8"?>
<GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"
android:layout_height="match_parent"

android:useDefaultMargins="true"
android:alignmentMode="alignBounds"
android:columnOrderPreserved="false"

android:columnCount="4"
>

<TextView
android:text="Email setup"
android:textSize="32dip"

android:layout_columnSpan="4"
android:layout_gravity="center_horizontal"
/>

<TextView
android:text="You can configure email in just a few steps:"
android:textSize="16dip"

android:layout_columnSpan="4"
android:layout_gravity="left"
/>

<TextView
android:text="Email address:"

android:layout_gravity="right"
/>

<EditText
android:ems="10"
/>

<TextView
android:text="Password:"

android:layout_column="0"
android:layout_gravity="right"
/>

<EditText
android:ems="8"
/>

<Space
android:layout_row="4"
android:layout_column="0"
android:layout_columnSpan="3"
android:layout_gravity="fill"
/>

<Button
android:text="Next"

android:layout_row="5"
android:layout_column="3"
/>
</GridLayout>

The first difference you’ll notice in these examples is the absence of the WRAP_CONTENT and MATCH_PARENT constants that normally adorn Android layout resources. You don’t normally need to use these with GridLayout, for reasons that are described in the API doc for GridLayout.LayoutParams.

Row and Column Indices

The second thing you may notice in the XML resources is that widgets don’t always explicitly define which cells they are to be placed in. Each widget’s layout parameters have row and column indices that together define where the widget should be placed but when either or both of these values are not specified, GridLayout supplies default values rather than throwing an exception.

Automatic Index Allocation

As children are added to a GridLayout, it maintains a cursor position and a “high-water mark” that it uses to place widgets in cells that don’t yet have anything in them.

When GridLayout’s orientation property is horizontal and a columnCount has been set (to 8 in this example) the high-water mark (shown above in red) is maintained as a separate height value for each column. When indices need to be created, GridLayout first determines the size of the cell group (by looking at the rowSpan and columnSpan parameters of the new widget) and then, starting at the cursor, goes through the available locations from: left to right, top to bottom, so as to find the row and column indices of the first location that’s free.

When GridLayout’s orientation is vertical, all of the same principles apply, except that the roles of the horizontal and vertical axes are exchanged.

If you want multiple views to be placed in the same cell, you have to define the indices explicitly, as the default allocation procedure above is designed to place widgets in separate cells.

Sizes, Margins and Alignment/Gravity

In GridLayout, specifying sizes and margins is done just as with a LinearLayout. Alignment/gravity also works just like gravity in LinearLayout and uses the same constants: left, top, right, bottom, center_horizontal, center_vertical, center, fill_horizontal, fill_vertical and fill.

Flexibility

Unlike most grids in other toolkits, GridLayout does not associate data with rows or columns. Instead, everything to do with alignment and flexibility is associated with the components themselves. GridLayout departs from the norm here to provide a more general system that allows subtle relationships between ancestors in deeply nested layouts to be accommodated in a single layout configuration.

The flexibility of columns is inferred from the gravity of the components inside the column. If every component defines a gravity, the column is taken as flexible, otherwise the column is considered inflexible. Full details are in GridLayout’s API docs.

Emulating Features from other Layouts

GridLayout does not incorporate all of the features of every layout in the Android platform but it has a rich enough feature set that idiomatic use of other layouts can normally be emulated from inside a single GridLayout.

Although LinearLayout can be considered a special case of a GridLayout, for the degenerate case when a set of views are aligned in a single row or column, LinearLayout is the better choice when this is all that is required as it clarifies the purpose of the container and may have some (relatively small) performance advantages.

TableLayout configurations are normally straightforward to accommodate, as GridLayout supports both row and column spanning. TableRows can be removed, as they are not required by GridLayout. For the same UI, a GridLayout will generally be faster and take less memory than than a TableLayout.

Simple RelativeLayout configurations can be written as grids simply by grouping the views that are related to each other into rows and columns. Unlike conventional grids, GridLayout uses a constraints solver to do the heavy lifting of the layout operation. By using GridLayout’s rowOrderPreserved and columnOrderPreserved properties it’s possible to free GridLayout from the confines of traditional grid systems and support the majority of RelativeLayout configurations — even ones that require grid lines to pass over each other as children change size.

Simple FrameLayout configurations can be accommodated within the cells of a GridLayout because a single cell can contain multiple views. To switch between two views, place them both in the same cell and use the visibility constant GONE to switch from one to the other from code. As with the LinearLayout case above, if all you need is the functionality described above, FrameLayout is the better choice and may have some small performance advantages.

One key feature that GridLayout lacks is the ability to distribute excess space between rows or columns in specified proportions — a feature that LinearLayout provides by supporting the principle of weight. This omission and possible ways around it are discussed in GridLayout’s API docs.

The Phases of the Layout Operation

It’s useful to distinguish the allocation phase for cell indices discussed above from the layout operation itself. Normally the phase that allocates indices happens once, if at all, when a UI is initialized. The index-allocation phase only applies when indices have been left unspecified, and is responsible for ensuring that all views have a defined set of cells in which they are to be placed at layout time.

The layout operation happens after this and is recalculated each time a view changes size. GridLayout measures the size of each child during the layout operation so it can calcuate the heights and widths of the rows and columns in the grid. The layout phase completes by using gravity to place each of the components in its cell.

Although index allocation normally only happens once, GridLayout is technically a dynamic layout, meaning that if you change its orientation property or add or remove children after components have been laid out, GridLayout will repeat the above procedure to reallocate indices in a way that is right for the new configuration.

From a performance standpoint, it is worth knowing that the GridLayout implementation has been optimized for the common case, when initialization happens once and layout happens frequently. As a result, the initialization step sets up internal data structures so that the layout operation can complete quickly and without allocating memory. Put another way, changes either to GridLayout’s orientation or the number of children it has are much more expensive than an ordinary layout operation.

Conclusion

GridLayout’s feature set incorporates much of the functionality of the Android framework’s existing general-purpose layouts: LinearLayout, FrameLayout, TableLayout and RelativeLayout. As such, it provides a way to replace many deeply nested view hierarchies with a single highly optimized layout implementation.

If you are starting a UI from scratch and are not familiar with Android layouts, use a GridLayout — it supports most of the features of the other layouts and has a simpler and more general API than either TableLayout or RelativeLayout.

We anticipate that the combination of FrameLayout, LinearLayout and GridLayout together will provide a feature set that’s rich enough to allow most layout problems to be solved without writing layout code by hand. It’s worth spending some time deciding which of these layouts is right for the top of your tree; a good choice will minimize the need for intermediate containers and result in a user interface that is faster and uses less memory.

HP Compaq 2230S Windows 7 Driver

HP Compaq 2230s Notebook PC Driver

Mugiwara said...

Hi Mr. Black-X.

I need Driver for HP Compaq 2230s
Windows 7 Ultimate(32-bit). plss help me


COMPATIBILITY:
This driver applicbale for the following operating system:
» Microsoft Windows 7 Enterprise (32-bit)
» Microsoft Windows 7 Enterprise (64-bit)
» Microsoft Windows 7 Home Basic (32-bit)
» Microsoft Windows 7 Home Basic (64-bit)
» Microsoft Windows 7 Home Premium (32-bit)
» Microsoft Windows 7 Home Premium (64-bit)
» Microsoft Windows 7 Professional (32-bit)
» Microsoft Windows 7 Professional (64-bit)
» Microsoft Windows 7 Starter (32-bit)
» Microsoft Windows 7 Ultimate (32-bit)
» Microsoft Windows 7 Ultimate (64-bit)

DRIVER:
This driver list is essential and important to install, install all the driver below according to order. Note that i recommend to install graphic and audio first, then restart to install other driver.

SOUND/AUDIO:
ADI SoundMAX AD1984A Audio Driver for Microsoft Windows 7
Download

GRAPHIC:
Intel Video Graphic and CP
Download (32 bit)
Download (64 bit)

MODEM:
LSI High-Definition Audio (HDA) Modem Driver for Microsoft Windows 7
Download

WIRELESS:
There are 2 applicable wireless and choose base on your specification. If you don't know which one, try which work, installing wrong driver will not harm your system.

1. Broadcom Wireless LAN Driver for Microsoft Windows 7
Download

2. Intel Pro Wireless LAN Driver for Microsoft Windows 7
Download

ETHERNET/LAN:
(this driver enable you to cnnect using LAN cable)
MARVEL YUKON Gigabit Ethernet Controller
Download

BLUETOOTH:
Software Support for HP Integrated Module with Bluetooth Wireless Technology for Microsoft Windows 7
Download

WEBCAM:
Chicony Webcam Driver: Download
HP Webcam Software (optional): Download

FINGERPRINT:
Authentec Fingerprint Driver
Download (32 bit)
Download (64 bit)

STORAGE:
Intel Matrix Storage Manager
Download

DRIVEGUARD
HP 3D Driverguard
Download

KEYBOARD AND MOUSE

1. Synaptic Touchpad: Download
2. HP Quicklaunch: Download

BLU-RAY:
Intervideo WinDVD 8 Blu-ray Disc (BD) Upgrade
Download

Here i  listed only the important driver, there are several software available for your model, but i don't recommend to install it so i not listed here. If there are problems leave your comments.

Wednesday, November 9, 2011

Compaq Presario V3618TU windows 7 Driver

NOTE:
You are recomend to install: card reader, graphic and quicklaunch.
Only install audio and wireless if it not working.
Other driver are optional.


Intel matrix storage manager for windows 7:
Download (intel site)
Download (mediafire)

ICH9 DRIVER
Intel Chipset Installation Utility for ICH9m for Microsoft Windows 7
Download

 AUDIO
Conexant High-Definition SmartAudio 221 Driver
Download

MODEM:
HDAUDIO Soft Data Fax Modem with SmartCP
Download

GRAPHIC:
if you have nvidia graphic:
NVIDIA GeForce 8M Series GS Graphics/Video Driver
Download (32-bit)
Download (64-bit)

If you ave intel graphic:
Mobile Intel 965 Express Chipset Family Video Driver
Download (32-bit)
Download (64-bit) (uploading)

ETHERNET/LAN
Marvell Yukon 88E8039 PCI-E Fast Ethernet Controller Driver
(applicable for win vxp/vista/7 32-bit and 64-bit)
Download

WIRELESS:
Broadcom Wireless LAN Driver for Microsoft Windows 7
Download

Intel PRO/Wireless Drivers for Microsoft 7
Download

HP WWAN Broadband Wireless Drivers
(originally vista drivers) 
Download

Support Software for HP Integrated Module with Bluetooth Wireless Technology (Microsoft Windows 7)
Download

HP Wireless Assistant
Download  

Cyberlink YouCam Software
Download

HP hs2300 HSDPA Firmware Update (Vodafone/Cingular)
(originally vista drivers) 
Download


Lightscribe System Software
Download


ALPS Touchpad Pointing Device Driver
Download

HP DVB-T TV Tuner External Expresscard Driver
(originally vista drivers)
Download

HP Digital/Analog TV Tuner Driver Software
(originally vista drivers) 
Download

HP Quicklaunch Button
Download (direct)
Download (HP)

CARD READER:
 Ricoh 5-in-1 Card Reader Host Controller and Driver for Microsoft Windows 7 (32-bit and 64-bit)
Download
or
Download

Tuesday, November 8, 2011

More Android Developer Labs in Asia

A couple of months ago, we kicked off a series of Android Developer Labs in Asia, North America and Europe. To wrap up the 2011 series, we now have opened registration for 2 more locations in Asia.

  • Taipei — December 2, 2011

  • Hong Kong — December 6, 2011

Remember, this ADL series isn’t another set of introduction-to-Android sessions, nor any other kind of general overview. It's specifically aimed at optimizing Android apps for tablets, in particular creating high-quality tablet apps with an emphasis on polish and user experience.

Registration is a two-step process. Anyone can register, but we can only accommodate a relatively small number of attendees from among the registrants, based on whether they already have an Android app with the potential to be a top-tier tablet app in terms of quality, fit, and finish. The goal is to bring your app to the ADL, and leave equipped to make it into one that makes Android tablet users smile.

Monday, November 7, 2011

Compaq Presario V3618TU windows XP Driver

Install according to order, I strongly recomend you to install the following before the drivers:
1. .Netframework 2 from microsoft

CHIPSET:
Intel Chipset Installation Utility for ICH7
Download

AUDIO:
Install MS-UAA and restart.
Microsoft Universal Audio Architecture (UAA) Bus Driver for High Definition Audio (sp33566)
Download

then install:
Conexant High Definition Audio Driver
Download

If installing the audio resulting in error:
Perform the below steps to fix the issue.
1. Click on Start and select Run. Now type devmgmt.msc and press enter.
2. Right click on "Audio device on High Definition Audio Bus" and click Update driver.
3. Select "Install from a list or specific location".
4. Click Next. Then select "Don't search, I will choose the driver to install".
5. Click Next and then select "Sound, video and game controller" from the list.
6. Click Next and then click Have Disk.
7. Click Browse C:\swsetup\sp35682 folder and select the .inf  file and click open and Continue with the onscreen instructions.

MODEM:
Conexant HDAUDIO Soft Data Fax Modem with SmartCP Driver
Download


GRAPHIC:
Mobile Intel 945GM Express Chipset Family Video Driver
Download

or

NVIDIA GeForce Go 7200 Driver
Download

WIRELESS:
----------------------------
choose base on your specs:

Intel PRO/Wireless Drivers
Download

Intel PRO/Wireless Drivers
Download

Broadcom Wireless LAN Driver
Download
----------------------------------

Wireless Software:
HP Wireless Assistant
Download

Intel PRO Network Adapter Driver
Download

BUTTON Driver
HP Quick Launch Buttons
Download

WEBCAM DRIVER
HP 1.3 MegaPixel (MP) Webcam Software Drivers
Download

WEBCAM SOFTWARE:
HP VGA Webcam Software Drivers
Download

TOUCHPAD:
Synaptics Touchpad Driver
Download

CARD READER:
Ricoh 5-in-1 Card Reader Host Controller and Driver
Download

STORAGE:
Intel Matrix Storage Manager
Download

Intel SATA AHCI Controller Driver
Download

LIGHTSCRIBE:
LightScribe Host Software
Download

BLUETOOTH:
Software and Drivers for HP Integrated Module with Bluetooth Wireless
Download


OTHERS:
HP Optical USB Mobile Mouse Driver

HP Wireless Laser Mini Mouse Software Driver

HP Battery Check

USB Video Device Application

Sunday, November 6, 2011

Compaq 610 Windows XP Driver

CHIPSET:
Intel chipset Intsallation Utility ICH8:
Download

AUDIO:
READ CAREFULLY!

1. Install MS-UAA and reboot:

Microsoft Universal Audio Architecture (UAA) Bus Driver
Download

2. Install the aduio driver and reboot:

IDT High-Definition (HD) Audio Driver 
Download

GRAPHIC:

There are 2 applicable graphic drivers, choose base on your specs.

INTEL Graphic Driver with Control Panel:
Download

ATI Graphic Driver with Control Panel:
Download 
(you can choose to install driver without the ATI control panel)

BUTTON:
HP Quicklaunch Button:
Download

TOUCHPAD
Synaptic Touchpad
Download

WEBCAM
HP Universal WEBCAM (Driver)
Download

MODEM:
LSI High-Definition Audio (HDA) Modem Driver for Microsoft Windows XP
Download

WIRELESS:
There are 3 applicable wireless, choose base on your specs (if you didn;t know just try which work, it will not harm your system)

Realtek RTL8191SE 802.11b/g/n Wireless LAN Driver for Microsoft Windows 
Download

Intel PRO/Wireless Drivers for Microsoft Windows XP 
Download

Broadcom Wireless LAN Driver for Microsoft Windows XP 
Download

BLUETOOTH:
Software Support for HP Integrated Module with Bluetooth Wireless Technology for Microsoft Windows XP
Download

LAN/ETHERNET:
Marvell Yukon Gigabit Ethernet Controller Driver 
Download

STORAGE:
Intel Matrix Storage Manager 
Download

Thursday, November 3, 2011

JNI Local Reference Changes in ICS

[This post is by Elliott Hughes, a Software Engineer on the Dalvik team. — Tim Bray]

If you don’t write native code that uses JNI, you can stop reading now. If you do write native code that uses JNI, you really need to read this.

What’s changing, and why?

Every developer wants a good garbage collector. The best garbage collectors move objects around. This lets them offer very cheap allocation and bulk deallocation, avoids heap fragmentation, and may improve locality. Moving objects around is a problem if you’ve handed out pointers to them to native code. JNI uses types such as jobject to solve this problem: rather than handing out direct pointers, you’re given an opaque handle that can be traded in for a pointer when necessary. By using handles, when the garbage collector moves an object, it just has to update the handle table to point to the object’s new location. This means that native code won’t be left holding dangling pointers every time the garbage collector runs.

In previous releases of Android, we didn’t use indirect handles; we used direct pointers. This didn’t seem like a problem as long as we didn’t have a garbage collector that moves objects, but it let you write buggy code that still seemed to work. In Ice Cream Sandwich, even though we haven't yet implemented such a garbage collector, we've moved to indirect references so you can start detecting bugs in your native code.

Ice Cream Sandwich features a JNI bug compatibility mode so that as long as your AndroidManifest.xml’s targetSdkVersion is less than Ice Cream Sandwich, your code is exempt. But as soon as you update your targetSdkVersion, your code needs to be correct.

CheckJNI has been updated to detect and report these errors, and in Ice Cream Sandwich, CheckJNI is on by default if debuggable="true" in your manifest.

A quick primer on JNI references

In JNI, there are several kinds of reference. The two most important kinds are local references and global references. Any given jobject can be either local or global. (There are weak globals too, but they have a separate type, jweak, and aren’t interesting here.)

The global/local distinction affects both lifetime and scope. A global is usable from any thread, using that thread’s JNIEnv*, and is valid until an explicit call to DeleteGlobalRef(). A local is only usable from the thread it was originally handed to, and is valid until either an explicit call to DeleteLocalRef() or, more commonly, until you return from your native method. When a native method returns, all local references are automatically deleted.

In the old system, where local references were direct pointers, local references were never really invalidated. That meant you could use a local reference indefinitely, even if you’d explicitly called DeleteLocalRef() on it, or implicitly deleted it with PopLocalFrame()!

Although any given JNIEnv* is only valid for use on one thread, because Android never had any per-thread state in a JNIEnv*, it used to be possible to get away with using a JNIEnv* on the wrong thread. Now there’s a per-thread local reference table, it’s vital that you only use a JNIEnv* on the right thread.

Those are the bugs that ICS will detect. I’ll go through a few common cases to illustrate these problems, how to spot them, and how to fix them. It’s important that you do fix them, because it’s likely that future Android releases will utilize moving collectors. It will not be possible to offer a bug-compatibility mode indefinitely.

Common JNI reference bugs

Bug: Forgetting to call NewGlobalRef() when stashing a jobject in a native peer

If you have a native peer (a long-lived native object corresponding to a Java object, usually created when the Java object is created and destroyed when the Java object’s finalizer runs), you must not stash a jobject in that native object, because it won’t be valid next time you try to use it. (Similar is true of JNIEnv*s. They might be valid if the next native call happens on the same thread, but they won’t be valid otherwise.)

 class MyPeer {
public:
MyPeer(jstring s) {
str_ = s; // Error: stashing a reference without ensuring it’s global.
}
jstring str_;
};

static jlong MyClass_newPeer(JNIEnv* env, jclass) {
jstring local_ref = env->NewStringUTF("hello, world!");
MyPeer* peer = new MyPeer(local_ref);
return static_cast<jlong>(reinterpret_cast<uintptr_t>(peer));
// Error: local_ref is no longer valid when we return, but we've stored it in 'peer'.
}

static void MyClass_printString(JNIEnv* env, jclass, jlong peerAddress) {
MyPeer* peer = reinterpret_cast<MyPeer*>(static_cast<uintptr_t>(peerAddress));
// Error: peer->str_ is invalid!
ScopedUtfChars s(env, peer->str_);
std::cout << s.c_str() << std::endl;
}

The fix for this is to only store JNI global references. Because there’s never any automatic cleanup of JNI global references, it’s critically important that you clean them up yourself. This is made slightly awkward by the fact that your destructor won’t have a JNIEnv*. The easiest fix is usually to have an explicit ‘destroy‘ function for your native peer, called from the Java peer’s finalizer:

 class MyPeer {
public:
MyPeer(JNIEnv* env, jstring s) {
this->s = env->NewGlobalRef(s);
}
~MyPeer() {
assert(s == NULL);
}
void destroy(JNIEnv* env) {
env->DeleteGlobalRef(s);
s = NULL;
}
jstring s;
};

You should always have matching calls to NewGlobalRef()/DeleteGlobalRef(). CheckJNI will catch global reference leaks, but the limit is quite high (2000 by default), so watch out.

If you do have this class of error in your code, the crash will look something like this:

    JNI ERROR (app bug): accessed stale local reference 0x5900021 (index 8 in a table of size 8)
JNI WARNING: jstring is an invalid local reference (0x5900021)
in LMyClass;.printString:(J)V (GetStringUTFChars)
"main" prio=5 tid=1 RUNNABLE
| group="main" sCount=0 dsCount=0 obj=0xf5e96410 self=0x8215888
| sysTid=11044 nice=0 sched=0/0 cgrp=[n/a] handle=-152574256
| schedstat=( 156038824 600810 47 ) utm=14 stm=2 core=0
at MyClass.printString(Native Method)
at MyClass.main(MyClass.java:13)

If you’re using another thread’s JNIEnv*, the crash will look something like this:

 JNI WARNING: threadid=8 using env from threadid=1
in LMyClass;.printString:(J)V (GetStringUTFChars)
"Thread-10" prio=5 tid=8 NATIVE
| group="main" sCount=0 dsCount=0 obj=0xf5f77d60 self=0x9f8f248
| sysTid=22299 nice=0 sched=0/0 cgrp=[n/a] handle=-256476304
| schedstat=( 153358572 709218 48 ) utm=12 stm=4 core=8
at MyClass.printString(Native Method)
at MyClass$1.run(MyClass.java:15)

Bug: Mistakenly assuming FindClass() returns global references

FindClass() returns local references. Many people assume otherwise. In a system without class unloading (like Android), you can treat jfieldID and jmethodID as if they were global. (They’re not actually references, but in a system with class unloading there are similar lifetime issues.) But jclass is a reference, and FindClass() returns local references. A common bug pattern is “static jclass”. Unless you’re manually turning your local references into global references, your code is broken. Here’s what correct code should look like:

 static jclass gMyClass;
static jclass gSomeClass;

static void MyClass_nativeInit(JNIEnv* env, jclass myClass) {
// ‘myClass’ (and any other non-primitive arguments) are only local references.
gMyClass = env->NewGlobalRef(myClass);

// FindClass only returns local references.
jclass someClass = env->FindClass("SomeClass");
if (someClass == NULL) {
return; // FindClass already threw an exception such as NoClassDefFoundError.
}
gSomeClass = env->NewGlobalRef(someClass);
}

If you do have this class of error in your code, the crash will look something like this:

    JNI ERROR (app bug): attempt to use stale local reference 0x4200001d (should be 0x4210001d)
JNI WARNING: 0x4200001d is not a valid JNI reference
in LMyClass;.useStashedClass:()V (IsSameObject)

Bug: Calling DeleteLocalRef() and continuing to use the deleted reference

It shouldn’t need to be said that it’s illegal to continue to use a reference after calling DeleteLocalRef() on it, but because it used to work, so you may have made this mistake and not realized. The usual pattern seems to be where native code has a long-running loop, and developers try to clean up every single local reference as they go to avoid hitting the local reference limit, but they accidentally also delete the reference they want to use as a return value!

The fix is trivial: don’t call DeleteLocalRef() on a reference you’re going to use (where “use” includes “return”).

Bug: Calling PopLocalFrame() and continuing to use a popped reference

This is a more subtle variant of the previous bug. The PushLocalFrame() and PopLocalFrame() calls let you bulk-delete local references. When you call PopLocalFrame(), you pass in the one reference from the frame that you’d like to keep (typically for use as a return value), or NULL. In the past, you’d get away with incorrect code like the following:

 static jobjectArray MyClass_returnArray(JNIEnv* env, jclass) {
env->PushLocalFrame(256);
jobjectArray array = env->NewObjectArray(128, gMyClass, NULL);
for (int i = 0; i < 128; ++i) {
env->SetObjectArrayElement(array, i, newMyClass(i));
}
env->PopLocalFrame(NULL); // Error: should pass 'array'.
return array; // Error: array is no longer valid.
}

The fix is generally to pass the reference to PopLocalFrame(). Note in the above example that you don’t need to keep references to the individual array elements; as long as the GC knows about the array itself, it’ll take care of the elements (and any objects they point to in turn) itself.

If you do have this class of error in your code, the crash will look something like this:

  JNI ERROR (app bug): accessed stale local reference 0x2d00025 (index 9 in a table of size 8)
JNI WARNING: invalid reference returned from native code
in LMyClass;.returnArray:()[Ljava/lang/Object;

Wrapping up

Yes, we asking for a bit more attention to detail in your JNI coding, which is extra work. But we think that you’ll come out ahead on the deal as we roll in better and more sophisticated memory management code.