I have created a keyboard layout for the language I speak on windows using Microsoft Keyboard Layout Creator.

I want to port the same layout to Phones.

Before the cursing starts, I have done a quick research.:) according to which:

  • all keyboard layouts are located at \system\usr\keylayout

  • all keyboard character map files are located at \system\usr\keychars

  • I went through the official documentation on Key Layout Files

Where Do I Stand Now?

Well, as I said in the start I have worked with a MS based app for creating keyboard layouts on Windows (obviously), The whole thing in Linux world is a bit gibberish to me at the moment because of lots of manual text file editing I guess.

So, my ultimate question is,

Is there such a tool which can help me create a new layout or import the existing layout which I created for windows to Android?

Update 2

I couldn't update my answer before because I didn't get the time. I finally found a tool which helped me a lot. It's called Keyboard Layout Editor. Please don't forget to star this guys repo. KLE is really easy to use and functional and I could achieve my goal easily. Oh by the way this one is for Ubuntu(Linux).

For Android though, I cloned the Sample SoftKeybord from Android source. You can download tar here. It's not a layout editor but the actual keyboard. You just edit it to suit your needs.


2 Answers 2


There is developer documentation found within the Android SDK that shows the basics of creating your own keyboard input method.

The actual sample of the touchscreen keyboard is part of the SDK sample, based off the documentation. Download the sample code, and look for the SoftKeyboard sources, there's a XML layout under the res/layout folder that represents the on-screen keyboard.

All that aside, let's look at the question objectively, using a custom layout that was developed on the Windows platform, may not be easy to "translate" to the Android version, as there is strings attached, you do need the pre-requisite knowledge of Android SDK, Java in order to achieve a custom layout, unfortunately.

As per @geffcheng's comment above the OP's question containing the linky that pointed to the appropriate thread on XDA, the blog entry highlighting how to come up with your own version, is more or less the same as the official developer documentation.

Other keyboard packages such as Swiftkey, Go Keyboard, SlideIT to name but a few, would have a feature to customize the layout appropriately using an add-on or third party to suit one's need, effectively tied to that keyboard. Using the SDK and documentation relating to the keyboard is the effective way to go about in rolling your own custom layout that is independent of Android version in use provided that the decision to support older versions is warranted.

If the decision to focus on Android v4.x upwards, the actual app is on the Google Play Store, the source code to the AOSP keyboard is available to download and play with from here.


One slightly low code option is to use Keyman Developer. It allows to create layouts for Desktop, web as well as mobile devices.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .