I type in both English and in Hebrew on a Windows 10 PC and on Android. The latter device is a Pixel 4a(5G), running Android 11.
The image attached to this question shows two Keyboards. The top one is a J.Burrows KB200 Bluetooth keyboard - a physical keyboard. Superimposed over it, in red characters, is a representation of a Hebrew-language keyboard layout. It represents the key-mapping you get in Microsoft Windows, when the input language is switched to Hebrew by selecting that setting on the language bar. That Bluetooth keyboard is compatible with both OS's mentioned above and can be paired with both devices.
(Note that the red letters on the top row should be ignored. The crucial characters on that row are the diacritics attached to the letters. The letters are there only to show the positions of the diacritics relative to the letters they are attached to. The same applies to the rightmost key on the next row down.)
The bottom keyboard is a screenshot of a virtual keyboard - Microsoft's OSK keyboard for Windows, showing its keyboard layout when the input language is switched to Hebrew on the language bar. This mapping has become a de-facto standard.
In Hebrew script, all letters of the alphabet are consonants. There are also 14 vowels, which are represented by diacritics that go below, above, or in the letters they are attached to. In Windows, you add diacritics to Hebrew letters in a word processor (e.g. Word) that supports it as follows: Turn on CapsLock, position the cursor immediately to the left of the letter you want to add the diacritic to, then type the relevant key while holding down the shift key. To resume Hebrew alphabetic typing, you must turn off CapsLock.
In the Windows keyboard layout for Hebrew, there are 14 keys for typing those vowels. On the J.Burrows keyboard, the keys for the first 13 vowels are the 13 leftmost keys on the number row (row 2), i.e. all the keys on row 2 except the Delete key at the far right. On the Microsoft OSK keyboard, those 13 keys are the 13 middle keys on the number row (row 1), i.e. all the keys on row 1 except the Esc key at the far left and the Backspace key at the far right.
The 14th vowel, called "Qubuts," should be mapped to the key inscribed with "\
" and "|" (lowercase and uppercase.) (Remember this one. It will be important for later.) On the J.Burrows keyboard, that key is the rightmost key on row 3, and on the Microsoft OSK keyboard, when the input language is set to Hebrew, it is the key on row 3 immediately to the left of the Enter key.
At first, after connecting a new keyboard to an Android device, you will only be able to use it to type in the system's default input language. To use it with your desired input language(s), you must tell Android which language(s) you want to type in with that keyboard. That configures Android to use its keyboard layout(s) for your language(s) to interpret input it detects from that keyboard. (A keyboard-layout maps keys on a keyboard to characters in a language.) For that reason, whenever you connect a new physical keyboard, Android prompts you to set up keyboard layouts for it. If you miss the prompt, the path, on Android 11, to the relevant menu in the Settings is: Settings > System > Languages & Input > Physical keyboard. The physical keyboard must be connected and switched on for this to be shown.
At that point, you have the option to switch on "Use on-screen keyboard," which keeps the virtual keyboard displayed even when you are using the physical keyboard. That is an optional setting, but to be able to switch languages on the physical keyboard, you must tap here on "Set up keyboard layouts," and then select the languages you want to use from a list of languages. (In my case, I select English (U.S.) and Hebrew.)
Note: in Android 14 (and perhaps also in 12 and 13), you may not find "Hebrew" in the alphabetical list of language names among those starting with "H." It will be shown in Hebrew as "עברית" probably at the end of the list.
After selecting your desired language(s), tap the left arrow at the top of the list to back out of that menu. At that point, Android presents you with a dialog box in which you can choose the language you wish to use for now. Do that, and note what it tells you about how to switch between languages. In the example shown above, it says, "to switch, press Control-Spacebar." Then continue backing out until you have completely exited the settings menu.
The pairing and the selection of keyboard layouts only needs to be done once. Subsequent usage of the keyboard only requires that you switch on the keyboard and switch on Bluetooth on the Android device.
When using a physical keyboard on Android, the method of typing Hebrew vowels is the same as the one used in Windows, described above.
Likewise, in all respects except one, the Android keyboard layout for Hebrew is the same as the Microsoft one. The sole exception is that the 14th vowel, called "Qubuts" (Unicode Character U+05BB) is completely missing from the Android layout. That vowel is shown here בֻ beneath the letter ב. Bearing in mind that, as mentioned above, the Microsoft keyboard layout has become a de-facto standard, and looking at the Microsoft OSK keyboard, you can see how, for a designer of a keyboard layout who is using the Microsoft layout as a guide, it is easy to overlook that character, because of its very unobtrusive position on the Microsoft OSK keyboard and also because it is similar in shape to a backslash (\
), which is the unshifted character on that key. I have tried every combination of keystrokes I can think of and I can find no way to type it on Android, which convinces me that it has been erroneously omitted from Android's keyboard layout for Hebrew.
This omission is very frustrating for a person typing in Hebrew. It is like trying to type in English on a keyboard with no comma on it, or a keyboard with no letter "u" on it.
I'd like to know if those keyboard layouts that you are required to select from when connecting a new keyboard are native to Android or if they are supplied by Google, and how to notify the relevant people of this bug. Also, are those layouts editable without rooting the phone? If so, it might be possible to overcome the problem. If anyone has a solution, I'd be glad to hear it.
UPDATE:
I now have proof positive that what I observed using the J.Burrows keyboard is not hardware specific. I connected a USB-wired keyboard to my Android phone using an OTG-style adapter (USB-C, male to USB-2, female). The keyboard is a standard, 104-key, Dell, SK-8115. The phone recognised it as a keyboard and it worked immediately, but if I wanted anything other than the default keyboard layout and input language, I had to set up keyboard layouts, as described above, choosing the languages I wanted to use. Then, when I switched the input language to Hebrew by pressing Ctrl-Space, I could type 13 out of the set of 14 diacritics used as Hebrew vowels, but not the Qubuts character. The same keyboard attached to a PC can type a Qubuts, using the expected key as expected in Windows (the method described above.) The Android Qubuts bug is very real - at least in Android 11.
UPDATE 2:
Today I had the opportunity to test for this bug on a friend's Pixel 8a running Android 14 and I can confirm that this bug also exists in Android 14. The results of my testing on that phone were identical to what I reported above.
HOW TO REPLICATE THIS BUG:
This is how you can test whether your device or version of Android is affected by this bug, regardless of whether you can read Hebrew or not. The process for connecting the keyboard and setting up the required keyboard layouts is detailed above (note what was mentioned there about where to find Hebrew in the list), but I will recap here just what to type to replicate this bug:
(a) If the physical keyboard is not currently typing in Hebrew, switch to Hebrew input, usually by typing Ctrl+Space on the physical keyboard.
(b) type C [space] C. You should see: ב ב. Then place the cursor immediately to the left of one of those two Hebrew letters.
(c) Turn on CapsLock, then, while holding down Shift, press 6 on the top number-row. It should now show as בֶ , proving that the method for typing diacritics works.
(d) Turn off CapsLock and move the cursor to the immediate left of the second of those two Hebrew letters.
(e) Now repeat step (c), but instead of pressing 6, press the key with \
and | on it.
(f) You will either see בֻ or |ב . If the latter, you have replicated the bug.
Available here is a PDF, no longer essential to this question, but containing a description of the problem, plus more information, with illustrations, about using multiple input languages on both Windows and Android and on typing diacritics. It is also easier to read.
UPDATE 3 A possible workaround:
This is not really an answer; it can't fix the bug in Android's stock keyboard layout for Hebrew. Nor is it, of itself, a workaround, but it could pave the path to one, if only I had the expertise to make use of it. Perhaps someone who does may step in to help ...
Thank you Morrison Chang for pointing me to this related question asked here in 2019, which led me to this question, asked in 2013, to which there were a few answers linking to apps or resources no longer available, so they were dead-ends, but one answer by nymabatur of May 3 2021 points to this app by Calin-Darie on the Google Play store:
More Physical Keyboard Layouts. I installed it. (There is no icon and it does nothing except add a bunch of keyboard layouts to Android's stock layouts.) One of the layouts it contains is a Hebrew one. It shows up in Android's layout list as "Hebrew (standard)" with the subtitle "Extra keyboard layouts" beneath it. It doesn't help with this problem; in fact, it makes it worse. Not only can't you type a Qubuts when that layout is selected, you also can't type any of the other 13 Hebrew-diacritics (U+05B0 - U+05BA, and U+05BC) - at least not in the manner that Windows users and users of Android's stock Hebrew layout are accustomed to typing them. So I don't know what standard Calin's layout follows, but it's certainly not the Microsoft one that, as I mentioned above, has become a de-facto standard - also followed by Android, save for the omission of the Qubuts vowel.
But it does hold some promise of a solution. Firstly, it is an open-source app, residing here on Git Hub. Also, here, under "issues" luigge asks if there is a way to create a custom layout to use with the app. To that, jidhub replies that that is exactly what his fork does.
I don't know if what jidhub has created is installable on an Android device as an app, even if it has to be sideloaded, or how to insert a custom layout in it. I have zero experience or knowledge in creating keyboard layouts, but it seems to me that if someone more savvy in this area were to approach such a task as follows, it should not be too difficult to create a workaround for this bug.
If a developer started with a copy of Android's stock Hebrew layout, which, aside from the missing Qubuts, is quite a satisfactory one, and then added just one more character - the Qubuts, of course - mapped to the "\ |" key, but with the proviso that it should only produce a Qubuts when both CapsLock and Shift are on, and the developer can add that custom layout to jidhub's fork of Calin's project and turn it into an app, that would be exactly what is needed as a workaround for this bug.
This may be of some help. (thank you again Morrison Chang for the link), but I'm not sufficiently knowledgeable in this area to make good use of it myself.