Android for higher resolution screens

231 views
Skip to first unread message

Bill

unread,
Mar 9, 2009, 8:11:14 AM3/9/09
to android-porting
I'm trying to port Android to a screen with a higher resolution. I
saw a previous post about this but, no one responded. Seems the issue
has something to do with a limit possibly set in the kernel. Has
anyone had any success porting to a bigger screen with resolution
greater than 800x600 and if so could you please share your experience?

Here is the previous thread on the topic:
http://groups.google.com/group/android-porting/browse_thread/thread/68afbb18112b01ad/95b0e6bc34226d70?lnk=gst&q=resolution#95b0e6bc34226d70

Thanks!

allstars

unread,
Mar 9, 2009, 10:52:26 PM3/9/09
to android-porting
for kernel part
first you need to modify DMA memory size in
kernel/include/asm-arm/memory.h
modify CONSISTENT_DMA_SIZE
originally it was only 2M ,
so when you specify larger than 800x650 (800 * 650 * 4 = 2080000 =>
almost 2M)
you can see out of memory in framebuffer

but the maximux value of DMA_SIZE is only for 4M
(the size of the page table used by DMA)

if you want to use more video memory
you can use boot_mem_alloc functions


for emulator part
i have also enlarge linux memory in qemu
external/qemu/vl.c
modify DEFAULT_RAM_SIZE
otherwise the available memory after booting up is only a few

for framework part
you need to modify the heap size for dalvikvm and surfaceflinger
if you want a very high resolution

surfaceflinger:
mSurfaceHeapManager = new SurfaceHeapManager( SIZE_YOU_WANT << 20)

and modify dalvik startup options
-Xms4m or 8m
at that time i found that if the startup memory size and maximux size
are the same
dalvik will behave strangely


i've done this several months ago
so somethins might have changed
but above is what i have done before

good luck to you anyway


On Mar 9, 8:11 pm, Bill <mccord.b...@gmail.com> wrote:
> I'm trying to port Android to a screen with a higher resolution.  I
> saw a previous post about this but, no one responded.  Seems the issue
> has something to do with a limit possibly set in the kernel.  Has
> anyone had any success porting to a bigger screen with resolution
> greater than 800x600 and if so could you please share your experience?
>
> Here is the previous thread on the topic:http://groups.google.com/group/android-porting/browse_thread/thread/6...
>
> Thanks!

harish

unread,
Mar 10, 2009, 6:54:41 AM3/10/09
to android-porting
Hi,

I am trying to run android on s-video interface.
my tv resolution is 640x480.

i am able to bootup the android and logo and applications are
running.
but, during booting, android logo shakes and flickers.

when the applications loaded, it is stable.

when i click icons, the launching of new application flickers and
comes.

samething for browser also.

Is any optimization to be done for reduced display size like 640x480
like to suit for TV standards.

Regards,
HarishKumar.V

Dianne Hackborn

unread,
Mar 10, 2009, 12:56:33 PM3/10/09
to android...@googlegroups.com
Flickering indicates you aren't handling page flipping correctly.

Note that Cupcake does not official support anything beside 320x480, and you can expect there to be UI issues running at any other resolution.  (Not flickering issues like you describe here, but UI elements not being positioned correctly etc.)
--
Dianne Hackborn
Android framework engineer
hac...@android.com

Note: please don't send private questions to me, as I don't have time to provide private support.  All such questions should be posted on public forums, where I and others can see and answer them.

Mattaku Betsujin

unread,
Mar 10, 2009, 1:20:36 PM3/10/09
to android...@googlegroups.com
Really?  I thought cupcake will be the first release to support non-HVGA screen sizes. Has this changed?

Ludwig

unread,
Mar 10, 2009, 1:33:53 PM3/10/09
to android...@googlegroups.com
The OpenMoko runs Android on a 640*480 screen without any trouble (at
least when it comes to display issues), AFAIK. The first good cupcake
builds are just coming out. You can find a start page
here:http://wiki.openmoko.org/wiki/Android
I have not noticed any significant layout issues running Android on
this resolution, apart from the fonts being too small and some (third
party) applications that have coded with absolute layouts tacked to
the G1 resolution.

Ludwig

2009/3/10 harish <harish...@gmail.com>:

David Turner

unread,
Mar 10, 2009, 3:08:41 PM3/10/09
to android...@googlegroups.com
On Tue, Mar 10, 2009 at 6:20 PM, Mattaku Betsujin <mattaku....@gmail.com> wrote:
Really?  I thought cupcake will be the first release to support non-HVGA screen sizes. Has this changed?
 
This hasn't changed, it's still in the roadmap, but as Dianne said it's still not *officially* supported (i.e. the code might not work yet properly in a large number of cases).

Dianne Hackborn

unread,
Mar 10, 2009, 3:17:30 PM3/10/09
to android...@googlegroups.com
And we don't have any of the backwards compatibility implemented yet, so a lot of third party apps will break.

expel...@googlemail.com

unread,
Mar 13, 2009, 4:33:23 AM3/13/09
to android-porting
Can anyone comment on:

- Why the size of the kernel DMA size has any relationship to the
screen resolution?
- Why Dalvik memory size has any relationship to the screen
resolution?

I would have thought that the Surface memory necessary is just a
SurfaceFlinger
issue.

Thanks

peter...@gmail.com

unread,
Apr 7, 2009, 10:38:18 AM4/7/09
to android-porting, allsta...@gmail.com, ludwigbr...@gmail.com
I am trying to port to a higher resolution too. I can scale up to
420x600,
when I tried the 500x600, The framework applications Crash.
I increase the msm_fb memory, but the framework still crashing. It
looks like some hard coded limits are hidden somewhere.
Can anyone help?

I/sysproc ( 227): Entered system_init()
I/sysproc ( 227): ServiceManager: 0x13fd60
I/SurfaceFlinger( 227): SurfaceFlinger is starting
I/SurfaceFlinger( 227): SurfaceFlinger's main thread ready to run.
Initializing graphics H/W...
D/SurfaceFlinger( 227): pid 227 requesting gpu core (owner = -1)
W/SurfaceFlinger( 227): couldn't grant gpu core to pid 227
D/EGL ( 227): requestGPU returned -1
E/GLLogger( 227): h/w accelerated eglGetDisplay() failed
(EGL_SUCCESS)
I/SurfaceFlinger( 227): EGL informations:
I/SurfaceFlinger( 227): # of configs : 6
I/SurfaceFlinger( 227): vendor : Android
I/SurfaceFlinger( 227): version : 1.31 Android META-EGL
I/SurfaceFlinger( 227): extensions:
I/SurfaceFlinger( 227): Client API: OpenGL ES
I/EGLDisplaySurface( 227): using (fd=22)
I/EGLDisplaySurface( 227): id = msmfb
I/EGLDisplaySurface( 227): xres = 500 px
I/EGLDisplaySurface( 227): yres = 600 px
I/EGLDisplaySurface( 227): xres_virtual = 500 px
I/EGLDisplaySurface( 227): yres_virtual = 1200 px
I/EGLDisplaySurface( 227): bpp = 16
I/EGLDisplaySurface( 227): r = 11:5
I/EGLDisplaySurface( 227): g = 5:6
I/EGLDisplaySurface( 227): b = 0:5
I/EGLDisplaySurface( 227): width = 500 mm (25.400000 dpi)
I/EGLDisplaySurface( 227): height = 600 mm (25.400000 dpi)
I/EGLDisplaySurface( 227): refresh rate = 60.00 Hz
W/HAL ( 227): load: module=/system/lib/hw/copybit.trout.so
error=Cannot find library
W/HAL ( 227): load: module=/system/lib/hw/copybit.trout.so
error=Cannot find library
W/SurfaceFlinger( 227): ro.sf.lcd_density not defined, using 160 dpi
by default.
I/SurfaceFlinger( 227): OpenGL informations:
I/SurfaceFlinger( 227): vendor : Android
I/SurfaceFlinger( 227): renderer : Android PixelFlinger 1.0
I/SurfaceFlinger( 227): version : OpenGL ES-CM 1.0
I/SurfaceFlinger( 227): extensions: GL_OES_byte_coordinates
GL_OES_fixed_point GL_OES_single_precision GL_OES_read_format
GL_OES_compressed_paletted_texture GL_OES_draw_texture
GL_OES_matrix_get GL_OES_query_matrix GL_ARB_texture_compression
GL_ARB_texture_non_power_of_two GL_ANDROID_direct_texture
GL_ANDROID_user_clip_plane GL_ANDROID_vertex_buffer_object
GL_ANDROID_generate_mipmap
W/HAL ( 227): load: module=/system/lib/hw/copybit.trout.so
error=Cannot find library
...
W/HAL ( 227): load: module=/system/lib/hw/overlay.default.so
error=Cannot find library
I/sysproc ( 227): System server: starting Android runtime.
I/sysproc ( 227): System server: starting Android services.
I/SystemServer( 227): Entered the Android system server!
I/sysproc ( 227): System server: entering thread pool.
I/SystemServer( 227): Starting Power Manager.
I/SystemServer( 227): Starting Activity Manager.
I/DEBUG ( 32): *** *** *** *** *** *** *** *** *** *** *** *** ***
*** *** ***
I/DEBUG ( 32): Build fingerprint: 'generic/htc_dream/dream/trout:
1.5/CUPCAKE/eng.peter.20090403.104137:eng/test-keys'
I/DEBUG ( 32): pid: 227, tid: 235 >>> system_server <<<
I/DEBUG ( 32): signal 11 (SIGSEGV), fault addr 450fc000
I/DEBUG ( 32): r0 450fc000 r1 00000000 r2 0000008c r3 00000000
I/DEBUG ( 32): r4 00000096 r5 0177076a r6 00008000 r7 000001f4
I/DEBUG ( 32): r8 0000d555 r9 00185500 10 00000000 fp 00000000
I/DEBUG ( 32): ip 00000000 sp 446fbc24 lr 00000000 pc
afb0451c cpsr 20000010
I/DEBUG ( 32): #00 pc 0000451c /system/lib/libcutils.so
I/DEBUG ( 32): #01 pc 0000a96c /system/lib/
libpixelflinger.so
I/DEBUG ( 32): #02 pc 00009ae4 /system/lib/
libpixelflinger.so
I/DEBUG ( 32): #03 pc 00011924 /system/lib/libagl.so
I/DEBUG ( 32): #04 pc 0000a17c /system/lib/libagl.so
I/DEBUG ( 32): #05 pc 00009068 /system/lib/libagl.so
I/DEBUG ( 32): #06 pc 000264fe /system/lib/
libsurfaceflinger.so
I/DEBUG ( 32): #07 pc 000252aa /system/lib/
libsurfaceflinger.so
I/DEBUG ( 32): #08 pc 00026562 /system/lib/
libsurfaceflinger.so
> > I'm trying to port Android to a screen with ahigherresolution.  I
Reply all
Reply to author
Forward
0 new messages