Is minSdkVersion=1 a good idea? - Android Software Development

Hi everybody.
I coded an Android app that ended such modest that it is compatible with the API level 1. (Some additional features are deployed if a higher api is available, e.g. uses the Material Theme if present, addresses some deprecated functions otherwise, etc... memory and screen resolution are also handled if they are low.)
My question: is it a good idea to really set minSdkVersion=1 ? (The only device that was deployed with this api that I know of is the HTC Dream...)
I won't be able to test such a low api on a real device. Should I do this anyway? Are there any snares I am missing?

Paul2017 said:
Hi everybody. I coded an Android app that ended such modest that it is compatible with the API level 1. (Some additional features are deployed if a higher api is available, e.g. uses the Material Theme if present, addresses some deprecated functions otherwise, etc... memory and screen resolution are also handled if they are low.). My question: is it a good idea to really set minSdkVersion=1 ? (The only device that was deployed with this api that I know of is the HTC Dream...). I won't be able to test such a low api on a real device. Should I do this anyway? Are there any snares I am missing?
Click to expand...
Click to collapse
In short...
The min sdk version Is the earliest release of the Android SDK that your application can run on. Usually this is because of a problem with the earlier APIs, lacking functionality, or some other behavioral issue.
The following link reflects all the details regarding the sdk versions for Android.
https://developer.android.com/guide/topics/manifest/uses-sdk-element.html
Good Luck!
~~~~~~~~~~~~~~~
I DO NOT PROVIDE SUPPORT VIA PM UNLESS ASKED/REQUESTED BY MYSELF.
PLEASE KEEP IT IN THE THREADS WHERE EVERYONE CAN SHARE

Related

finger friendly API

Hi guys. I see a lot of "finger friendly" contact managers apps theese days.
Which API are you using ? I'm planning to work on it for sms reading and any help would be great.
Hi,
Personally, for contact manager, I'm working on ... my own framework, but that's mostly to allow decent performance and animation effects.
Basically it's a composite pattern, every control is based on LightControl base class which provide basic interraction and drawing.
The drawback of this approach is that text input control are rather complex to do, the big advantage is that layout, drawing are free are control aren't tight in a specific shape.
What are your requirements?
Hi, I'm working on .NET 2005 (usually VB but I also have knowledges of C) and I'm developing for a Prophet and a Trinity
yes.. but what are your requirement regarding the framework? what do you want to do that classic winforms won't provide you?

[Q] Help disabling features on Windows Mobile 6.5 Professional

I am using a phone that has a Windows 6.5 operating system on it.
I wish to disable all the features on my phone other than GPRS connectivity,Wifi connectivity and Camera features.i.e.I shouldnt be able to make or receive calls,text anyone,play games,or use any other default feature.
Either it must be completely disabled or i should be able to give so kind of password protection to these features.
Please help me at the earliest,i require it for a project completion,and i am not able to figure it out as how this can be done.
Thank You in advance
i dont know whether this is the right place to post as i am a new user,so i am extremely sorry if i have made a mistake.
You should get a SIM card that only supports data access for your project. This will prevent any circuit switched (i.e. voice) features and linked services like SMS. There are also options to activate call barring features for a normal SIM (so you can steer what is allowed or not) - but his is then again part of the SIM card subscription (and can be used on any phone likewise).
There are no default options which could cripple your device in such way as you have asked for.
How to make changes in security policy of Windows Mobile 6.5 Professional?
i was browsing through the net and i found this matter:
4102
Unsigned Applications Policy
SECPOLICY_UNSIGNEDAPPS
This setting indicates whether unsigned applications are allowed to run on Windows Mobile devices. If a signed application does not have a matching root certificate in the Privileged Execution Trust Authorities or the Unprivileged Execution Trust Authorities certificate store, the application is unsigned.
You should always use SECPOLICY_UNSIGNEDCABS together with SECPOLICY_UNSIGNEDAPPS policy. This means that when you block unsigned applications from running, you should also block unsigned cab files from getting installed on the device.
Default value is 1 for Windows Mobile.
The following list shows the possible values:
0 indicates that unsigned applications are not allowed to run on the device.
1 indicates that unsigned applications are allowed to run on the device.
Any value other than 1 is treated as 0.
The required role to modify this policy is SECROLE_MANAGER.
i think this will help me as i can make the applications that i dont need as unsigned applications and then make it 0 which will serve my purpose...but i have no clue how to make these changes in my mobile..
Can u please help me with this???
the solution that is given wont work for me because if anyone changes the sim then the settings i require will change and thus the solution is not full proof. i also dont know i will get any sim dat only offers data transfer.
thank you for the quick reply and i am expecting the same in future too!!
Thanks in advance
Regards,
Sneha
Let me write you this last reply to your query, please do not expect any further from my side.
This forum deals with understanding restrictions and enabling previously hidden or restricted functions mainly - learning from each other's experience.
The subforum you have chosen (chef central) deals with understanding how the Operating System is constructed from packages and how these can be recombined to new (cooked) ROMs.
There is no intention to cripple the existing functions of the operating system itself or to restrict the Radio part of it in any way.
You may think that the snippet you took from a MSDN page delivers something you could use for your purpose (which you have not outlined) without understanding the security concept of Windows Mobile. This is quite complex and often (for simplicity) simply disabled completely on several levels - so no security either for whatever you want to do.
The existing packages of the OS do not have separate components that you could omit to disable your desired functions.
Even if so, these core packages of the OS are usually delivered as modules (another special concept of Windows CE/Mobile) that do not need any security or signing - so they run anyway without restrictions.
So finally good luck with whatever you want to do, but I believe that you cannot achieve this with a crippled Windows Mobile - at least not fool proof.
Hello Sneha,
Welcome to the forums.
Unsigned Applications Policy is totally different then what you are looking for. More info here. When enabled, you will be allowed to install or run unsigned aka untrusted apps.
But the inside apps or features are already signed so you cannot stop them from running by enabling or disabling Unsigned Applications Policy.
The really thing you need is to make a custom ROM, remove all the unnecessary things and flash it to your device(s). That means you should change/modify the built in OS (in a simple word) but you cannot do within the device
However, its not a day, week or even a month task. It takes many months to learn things and then you can finally do it. I'm 99% sure that all of your needs can be fully filled but :
1. Takes many months to learn.
2. You need to get the stock ROM, Modify and flash to the device.
BTW; which device you really have?
Thanks...
Best Regards
Closed environment is something that should be done in bsp: kernel to be precise. Also it is possible via custom certmod.dll.
BUT. Little problems:
1) no bsp sources unless you're OEM
2) no certmod.dll sources.
Please look at the initial request on the restriction of radio features. This is handled in the radio layer and this cannot be cut in pieces. So there are no components to sign/restrict/omit for that query.
Cooking can do a lot, but it does not go inside one component.
Cutting all other things may be feasible - but not for radio relevant parts imho.
tobbbie said:
Please look at the initial request on the restriction of radio features. This is handled in the radio layer and this cannot be cut in pieces. So there are no components to sign/restrict/omit for that query.
Cooking can do a lot, but it does not go inside one component.
Cutting all other things may be feasible - but not for radio relevant parts imho.
Click to expand...
Click to collapse
Of courses its a lot of work but its possible. Within the OS functions. Radio thing is just for input and output but the way its handled is under OS itself. Am I right or wrong? Think of removing packages depending to what you don't want.
i.e to disable messaging, Remove all things which are related to it. I'm sure you know it.
Though its a plenty of work and have to be expert so not messing around things.
ultrashot is right but if we had the source, every thing would have been different and even easy.
Radio is special and never dealt with in cooking. The Radio lower layers are treated with code in a dedicated partition (GSM) and accessed via an interface Layer (RIL = Radio Interface Layer) from the OS.
On top of that are applications like messaging or MMS - these can be cut.
I see no option to prevent e.g. only speech calls but allow data calls. On RIL level these are just different GSMBCIE elements (look up the relevent 3gpp specs). Of course you could find dirty ways to cut off e.g. the GSM speech codecs, but this would possibly not prevent to set up a call - creating cost but not having success when connected.
Tweaking these parts has not been of anyone's interest and thus "in theory" possible but hardly practically feasible.
How can i make changes on the OS?
Thanx a lot Cracing for the positive advice.I was planning to consult the OEM to make changes in the security policies.
I am working with the Synqe device .My main aim is barcode scanning and sending the data via GPRS or Wifi.and at the same time i want that all others connectivities and applications are to be deactivated.
Moreover i wish to restrict the usage of GPRS strictly for my application.
As u mentioned that i will have to make changes in the OS,will the OEM be able to do that for me or should i consult a good Mobile OS developer?
sneha6689 said:
Thanx a lot Cracing for the positive advice.I was planning to consult the OEM to make changes in the security policies.
I am working with the Synqe device .My main aim is barcode scanning and sending the data via GPRS or Wifi.and at the same time i want that all others connectivities and applications are to be deactivated.
Moreover i wish to restrict the usage of GPRS strictly for my application.
As u mentioned that i will have to make changes in the OS,will the OEM be able to do that for me or should i consult a good Mobile OS developer?
Click to expand...
Click to collapse
I see
Going with OEM should be better idea. They have the sources to do anything. Its not so easy for 3rd party Mobile OS developers (i.e here ). Need things and takes long enough to R&D and finish the project.
Hope you will find a good solution for your project soon.
Thanks...
Best Regards

[DEV IDEA] Cross platform Benchmarks (on HD2)

HTC HD2 might not be the fastest running device out there but it is undoubtedly the most popular Hardware platform vis-a-vis the no of OSes (Winmo,WP7,Android,meamo/meego(partially) and several desktop linux distros) supported. The basic aim of using one OS or the other is to optimize the utilization of system resources or in other words, to get maximum performance/usability from the given hardware in this case the HD2.Now to find the best performing custom ROM (why do we still call it a ROM, its not read only anymore )we can resort to certain benchmarks and tests to come up with the best performing ROM of a certain platform. But If I were to find out based on a certain basic parameters what is the OS that best utilises my HD2 (or any other phone for that matter) sadly I'd be at a loss. To my mind a good way of getting there would be a cross platform benchmark which could test all the platforms based on some basic parameters (suggested below) and give out the result, as to which OS performs the best on a given phone. I suggested HD2 because it can test most of the platforms supported by XDA (and I happen to own one)
Parameters
call connection delay
call Audio quality
SMS/MMS sending/recieving efficiency
UI fps
WIFI reception/connection reliability
camera/camcorder result and performance
audio/ video playback quality
RAW CPU/GPU performance
battery life for a diverse set of tasks
(the list might need expansion but these I think are the basics)
Now a seasoned dev can approach the problem in any way possible but here are my suggestions for a means to get there.
1. One option would be to base this benchmark/tests on a cross platform emulator which works on a wide variety of OSes.
2. Java is said to be platform independent so in theory it can be used.
3. Make all the tests to run in the Browser.
Another advantage of this would be that devs would know the limits of a particular hardware and can develop accordingly. As an example, when devs found out that the HD2 can capture 720p video on WP7 they started porting this ability to android as well.
Need expert and non expert opinion on the practicality of this.
s8isfi said:
HTC HD2 might not be the fastest running device out there but it is undoubtedly the most popular Hardware platform vis-a-vis the no of OSes (Winmo,WP7,Android,meamo/meego(partially) and several desktop linux distros) supported. The basic aim of using one OS or the other is to optimize the utilization of system resources or in other words, to get maximum performance/usability from the given hardware in this case the HD2.Now to find the best performing custom ROM (why do we still call it a ROM, its not read only anymore )we can resort to certain benchmarks and tests to come up with the best performing ROM of a certain platform. But If I were to find out based on a certain basic parameters what is the OS that best utilises my HD2 (or any other phone for that matter) sadly I'd be at a loss. To my mind a good way of getting there would be a cross platform benchmark which could test all the platforms based on some basic parameters (suggested below) and give out the result, as to which OS performs the best on a given phone. I suggested HD2 because it can test most of the platforms supported by XDA (and I happen to own one)
Parameters
call connection delay
call Audio quality
SMS/MMS sending/recieving efficiency
UI fps
WIFI reception/connection reliability
camera/camcorder result and performance
audio/ video playback quality
RAW CPU/GPU performance
battery life for a diverse set of tasks
(the list might need expansion but these I think are the basics)
Now a seasoned dev can approach the problem in any way possible but here are my suggestions for a means to get there.
1. One option would be to base this benchmark/tests on a cross platform emulator which works on a wide variety of OSes.
2. Java is said to be platform independent so in theory it can be used.
3. Make all the tests to run in the Browser.
Another advantage of this would be that devs would know the limits of a particular hardware and can develop accordingly. As an example, when devs found out that the HD2 can capture 720p video on WP7 they started porting this ability to android as well.
Need expert and non expert opinion on the practicality of this.
Click to expand...
Click to collapse
This idea has quite a few major flaws,
1) All platforms are designed a certain way (atleast in embedded systems where resources are scarce) and hence even though one platform might outperform the other, it might not have the features necessary or required by the user, ie. I "LOVE" WP7, the UI is fluid and the design is awesome, it works wonderfully however it being a recent addition to the market means that there aren't many apps and also due to the restrictive nature of wp which forces me to either dualboot or stay with android, Dualbooting has it's own flaws as battery is still very bad in sd android and WP7 so that leaves me no choice but to either go to WM6.5 or Android since the Linux Distros aren't targeted for a phone, even though they might work, there are flaws such as having to open terminal and executing scripts for smallest of the work like switching bluetooth on/off, and absence of audio even after ALSA modules for evo based msm kernel were out.
2) Raw performance means nothing, you aren't going to crunch numbers or perform scientific calculations on your phone, it doesn't matter if it's of no use, what you should be looking for instead is "Productivity"
3) Windows Mobile was an awesome platform with countless apps and functionality but it was just too old for the market, ie. Look at the difference in UI of WP7/Android to WM6.5
4) Java is NOT platform independent, it is just ported to enough places that the code you write will work on most of the machines, ie. Try executing java code on windows phone, also it is not the same libraries of java used through out, microsoft uses their inhouse developed java version while android interprets java code into dalvik byte code before execution, Linux favors opensource libraries which are known to be much slower than the ones provided by Sun. Neither is the browser same in all, you also have choice of browsers in platforms themselves and all of them are generally specialized for different tasks such as firefox for android can run html5 code and is said to be the most compliant browser but is way slower than the stock one or the Dolphin HD where as the stock browser or Dolphin are incapable of CSS3 transitions and most of the html5 content.
*you cannot measure "fps" in UI, everything is not rendered the way you are thinking it is, try switching on forced screen refresh through development tools on an android phone and see, most of the time you'll notice that most of the parts on the screen remain static and it's only the new components that are blit over the older parts in framebuffer.
There are a few more flaws but since i'm running out of time, ill stop here.
As for me, nand android (cyanogenmod nightlies) are the best, Doesn't lag in normal use, enough eye candy, good enough battery life and is quite stable and soon with the new DSP code we will have 720p recording on Android too.
Thanks for the detailed reply. What I understand is that there is way too much diversification for a the same code to run.

[DEV] AndroidLib - .NET Android Device Communication and Management Library 01.20.13

Description:
AndroidLib is a .NET assembly written in C# (C-Sharp) that easily handles communication between a connected Android device and your program. Currently, there is a large amount of automated controls, eliminating thousands of lines of code the programmer has to write themselves. The class AndroidController is a semi-wrapper of the ADB (Android Debug Bridge) binary. The other class you will be working with the most is the Device class. This class contains useful information about the device (for example: software/hardware info, memory info, battery stats, mount points for partitions, root status, busybox information, and much more), as well as exposes many instance methods to control your phone such as Rebooting, Mounting Filesystems, Push/Pull/Install Files, and much more to come. AndroidLib contains all of the Android binaries necessary to work properly. AndroidLib also assumes that the phone's USB drivers are already installed correctly on the target machine, or that your program will take care of it on it's own.
This is perfect for any developer who would like to create, for example, an auto-rooter or any other application that needs to connect with Android devices through a .NET application. AndroidLib provides all the methods needed to communicate with the Android device. This will cut back on the code you have to come up with and write yourself by a HUGE amount!
What it does:
Provides easy-to-use code for communicating with Android devices in .NET
Provides easy access to information about the connected Android devices
Has a large list (and growing...!) of methods that control connected Android devices
Please credit the work here by me in your own projects; not only to give thanks to me and the many hours I am putting in to this project, but so others know where to find it if they need to!
Usage:
Add a reference to AndroidLib.dll in your .NET project and begin using this great API. Please refer to the "Getting Started.txt" guide and full documentation included in the zip.
Requirements:
.NET 3.5 or Higher
Changelog (Only most recent version displayed, full Changelog in download)
Version 1.5.1.0 | 01.21.13
Fixed Device.InstallApk() bug
Download Latest Release
GitHub
Online Documentation
Sample Solutions Using AndroidLib:
C# (C Sharp)
Visual Basic (VB)
AndroidLib Featured Projects by XDA Users:
RegawMOD Evo 4G LTE Rooter - XDA
RegawMOD CDMA Hero Rooter - XDA
RegawMOD Rebooter - XDA
Droid Manager by DeepUnknown - XDA - Google
Android SMS - XDA - Home Page
Quick ADB Pusher by Goatshocker - XDA
reserved just in case
It's very useful, thank you very much, im planning to code a Filemanager like qtadb, because qtadb is sucking too often
In the process of completely redesigning the library (due to coding stupidity), basically from the base class up. I should have a beta1 out by this weekend for testing. All that are interested in beta testing this library for their Android .NET projects, post here and I'll add you to the list of testers!
It would be great!
Can you add something like adb forward? So we can connect to an android service without using ADB, that as we all know sucks!
Mrc527 said:
It would be great!
Can you add something like adb forward? So we can connect to an android service without using ADB, that as we all know sucks!
Click to expand...
Click to collapse
Yeah, I'll throw in a method to create a port forward. What I have now uses the bridge, which is included in the assembly, but handles all of it silently and very well. I should have a build out soon (most likely this weekend). As long as you don't dispose the AndroidController object, that port forward will be good, so you can use your own Socket code
regaw_leinad said:
Yeah, I'll throw in a method to create a port forward. What I have now uses the bridge, which is included in the assembly, but handles all of it silently and very well. I should have a build out soon (most likely this weekend). As long as you don't dispose the AndroidController object, that port forward will be good, so you can use your own Socket code
Click to expand...
Click to collapse
Great work! really, great idea!
You can change the .NET to 3.5? I too code in .NET, and I try to keep the .NEt version as low as possible!
SimranSingh said:
You can change the .NET to 3.5? I too code in .NET, and I try to keep the .NEt version as low as possible!
Click to expand...
Click to collapse
Yeah, I actually did that a few days ago, forgot to update the OP.
Where is it possible to download?
Mrc527 said:
Where is it possible to download?
Click to expand...
Click to collapse
I'm just writing the documentation for this. I'm pretty sure I'll have it done today.
Yeah! Just a joke. When finished I'm sure will be a success!
Inviato dal mio Galaxy Nexus usando Tapatalk
Making some last minute changes to the Device class, then I'm going to finish the documentation and release it. Just keeping you updated.
Ok everyone, the new documentation is up (Online) (Offline). For the beginning of this product, I would like developers to pm me, or reply here in the thread if they would like to try the library out for their project, and I'll send it to them. It's still under development, and there will be updates coming out regularly. Shoot me a pm or post here and I'll send you a link right away.
regaw_leinad said:
Ok everyone, the new documentation is up (Online) (Offline). For the beginning of this product, I would like developers to pm me, or reply here in the thread if they would like to try the library out for their project, and I'll send it to them. It's still under development, and there will be updates coming out regularly. Shoot me a pm or post here and I'll send you a link right away.
Click to expand...
Click to collapse
Meeeeeeeeeeeeeeeeeeeeee!!
Hi,
I'm C# developer and i would like to try your lib, can you send it please?
Thanks in advance, and great work.
Hey guys, check the first post to download the library. It is in a zip which includes the dll, "Getting Started.txt" and the documentation. Please read the getting started guide before diving into it! And please give me feedback on it. That would be much appreciated in order for me to deliver a better product.
Dan
Great work!
It works without any problem to me!
Next update will have these features internally implemented:
Package Manager (inside the phone's shell)
Ability to install/uninstall apks
Ability to freeze/unfreeze apks
Ability to backup/restore apks
A class that will handle signing of update zips
More internal information about connected device (cpu, environment, etc)
Possible wrapper of AAPT
That seems like a good amount for the next update. Please post anything you wish to share about the library after using it for these few days.

Need help getting started with app development (windows, BSD) for stylus input note making app!

I have with experience in VLSI, shell scripting (bash, windows powershell) and basic programming languages like C and Python (Matlab too, which uses a similar syntax).
I want to get into app development but I am completely new to this and unfamiliar with the whole structure - the IO libraries, rendering libraries especially. I mainly like to develop it for Windows 11 (but would be nice if I could make it cross platform, say using something like Vulkan as rendering library).
I wish to make a stylus based note making app (similar to one note, drawboard pdf etc). I wish to know about the libraries available for taking input from surface pen (or other pens). I found that there are a few API available for windows - RealtimeStylus, Windows Ink, etc but I am unable to find anything cross platform. I would like to know if there are open source, or cross platform alternatives. Alternately, I would like to know if it is possible to bypass these and create a custom API myself (including my own algorithms for tracing curves and predicting handwriting etc, at present I am left to use whatever was done in these APIs I think), also possibly making it lower latency within the app. To some extent I realized that pen position is very similar to trackpad input (on the data input to pc side) and then we have tilt and pressure sensitivity data which I'm not sure how it is accessed and used. I remember reading a little about libsdl sometime ago. I would like to know if there are alternatives to libsdl, or if Vulkan supports any alternate libraries.
I would like to know how I could code a program that works on both x64 and aarch64 on windows 11 (Not into 32 bit as I belive my tool will use more than 4GB RAM anyway, as a priority), and as mentioned above, it would be fantastic if I could make it cross platform. What I got from this page is that ( https://docs.microsoft.com/en-us/windows/arm/ ) if I write my program in C++ it should be possible to compile it for both x64 and aarch64 (and make possible optimizations for each of them separately). I am not sure how the whole development environment works - what is dotnet, what is unity, what is xamarin, and differences between each. I found a few code macros in dotnet that help in rejecting certain inputs (could be useful for palm rejection etc) : ( https://docs.microsoft.com/en-us/do...s.uielement.isinputmethodenabled?view=net-5.0 ) (https://docs.microsoft.com/en-us/dotnet/api/system.windows.uielement.ishittestvisible?view=net-5.0 ). As far as I am aware dotnet is cross platform. I might want to make instruction level optimizations to the software (like SSE, AVX, certain 64 bit instructions etc if that gives any hint) and would like to know if the dotnet environment/toolkit has sufficient low level coding possibility to access these. Also, I am curious if it supports vulkan or opengl. Vulkan is written in C++ and supports multiple platforms so I am more inclined to try it.

Categories

Resources