Related
mamaich said:
Occasionally I've found this page - http://blogs.msdn.com/sloh/archive/2005/05/27/422605.aspx
It has an interesting code at the bottom. I've already made a program that can hook system calls, I'll try to hook EnterCriticalSection and WaitForMultipleObjects and force them to use that code. Maybe this would reduce the occasional lockdowns.
Click to expand...
Click to collapse
I've made such a program. It gave no noticeable improvements for me, but I've attached it to this post with source code.
Source code would be interesting to people, who need to hook kernel functions that are implemented in nk.exe.
The function uses LoadKernelLibrary to load DLL, DLL relocates SystemAPISets table to writeable memory and hooks needed functions.
Code has no comments and looks ugly, but is short and should be easy to understand.
mamaich: thanks so much for this. I need all the hooking code I can get my hands on right now.
Will look at this ASAP. In your debt
V
Thanks...I've just started programming in EVC++ 4, so it might be useful.
Project is compiled with VS2005, it can be ported to eVC4. And it is designed for WM5, but should work also with older OSes, maybe minor modifications in internal OS structures may be necessary.
I'm not a programmer, I just want to compile MAME for the Android. But, of course compiling code within the Android platform is not possible (as one would do it in Ubuntu or Debian), so I need the Android SDK and enough knowledge of java to call the native code, which needs to be packaged by the NDK, launched from within Cygwin.
Seems there will also be some video issues, beyond my comprehension. MAME developer R. Belmont posted this on porting MAME to Android:
The OpenGL support won't help you with GLES, that'll need to be an entirely separate code path
Click to expand...
Click to collapse
Whatever that means, it sounds like a lot of work. Looking around for similar projects for examples on how to call native code like the source for MAME , I found the java activity source code for aDosBox. It's also an emulator, but also has video requirements and uses native source as it's base. I'm still decrypting what it does, but for a developer (perhaps you!) looking to port MAME, it might be a good place to start.
What would be cool, is a couple templates I could just plug the needed particulars into. One for the Android.mk file that adds any required libraries needed for video stuff when I use ndk-build, and one for the java activity that simply calls the native code.
The MAME source code also has an SDL backend in the included build system. The build system 'detects' what platform it's on and builds accordingly. Can SDL be used in the Android SDK?
Hello XDA developers,
As you know, Atmel maXTouch touchscreen controllers are used in a large percentage of Android phones and tablets out there.
I wanted to let you know that the latest patches for the official Atmel maXTouch Linux driver are available on GitHub. This will allow you to get the latest up to date changes before they make it into the mainline kernel.
On GitHub, search for user "atmel-maxtouch"
Happy hacking
Best regards,
Sherif
Product Marketing Manager - Atmel
thank u for ur valuable information, well can u pls post what are the latest changes and updates. that will help the devs much more.
Hi showlyshah,
The latest updates include the following:
- Support for Atmel's mXT224E, mXT768E, and mXT540E chipsets
- Support for both protocol A and protocol B reporting
- Support for kernel 3.0 in addition to kernel 2.6.35
More details are available on GitHub in the release notes.
Regards,
Sherif
Is https://github.com/atmel-maxtouch the correct URL?
Unfortunately, if it is, the drivers in this repository are structured completely differently from the ones included in many vendor source drops, and unfortunately this causes great negative impact on their usefulness.
See, for example:
https://github.com/Entropy512/linux_kernel_sgh-i777/tree/master/drivers/input/touchscreen - This includes the mxt224 drivers as implemented by Samsung on their device (Galaxy S II)
https://github.com/atmel-maxtouch/linux/tree/master/drivers/input/touchscreen - mxt224_u1.c is completely missing, indicating that the driver here is incomplete or structured very differently from the one used by Samsung, making it very difficult to use. Also, the few files there that do pertain to Atmel MXT such as atmel_mxt_ts.c in there appear identical to the mainline Linux repo.
Entropy512 said:
Is https://github.com/atmel-maxtouch the correct URL?
Unfortunately, if it is, the drivers in this repository are structured completely differently from the ones included in many vendor source drops, and unfortunately this causes great negative impact on their usefulness.
Click to expand...
Click to collapse
But it's not Atmel who are to blame. Atmel are doing a great job working directly with upstream so that all the users of mainline linux can benefit. I have been using the drivers from the vanilla kernel for quite a while on both my tegra tablet (with chromium kernel) and galaxy s2, and they work just fine, supporting multitouch in xorg in ubuntu.
The problem is OEMs who do crap like hardcoding/hacking drivers instead of using platform data, use machine-specific hacks, custom interfaces and a lot of copy-paste. That's the essence of modern consumer electronics business - no one cares for quality, only about releasing early.
Entropy512 said:
Unfortunately, if it is, the drivers in this repository are structured completely differently from the ones included in many vendor source drops, and unfortunately this causes great negative impact on their usefulness.
See, for example:
linux_kernel_sgh-i777/tree/master/drivers/input/touchscreen - This includes the mxt224 drivers as implemented by Samsung on their device (Galaxy S II)
atmel-maxtouch/linux/tree/master/drivers/input/touchscreen - mxt224_u1.c is completely missing, indicating that the driver here is incomplete or structured very differently from the one used by Samsung, making it very difficult to use. Also, the few files there that do pertain to Atmel MXT such as atmel_mxt_ts.c in there appear identical to the mainline Linux repo.
Click to expand...
Click to collapse
I think you're looking at the unchanged mainline branch: the driver releases are as tags.
The advantage of these drivers is that they are generic for all chips in the maxtouch series. mxt224_u1.c is just a renamed atmel_mxt_ts.c, it contains lots of mxt224 specific configuration and it's unlikely that it will go upstream.
You will also find some user-space tools for extracting config files in a format the kernel driver can load, on the same github account.
Missed the tags, thanks for the additional info!
I'll look into maybe playing with this when ICS time rolls around. It's getting late in the game to do a major driver rework on the Gingerbread kernel I maintain.
sherifhanna said:
Hi showlyshah,
The latest updates include the following:
- Support for Atmel's mXT224E, mXT768E, and mXT540E chipsets
- Support for both protocol A and protocol B reporting
- Support for kernel 3.0 in addition to kernel 2.6.35
More details are available on GitHub in the release notes.
Regards,
Sherif
Click to expand...
Click to collapse
Hi Sherif,
I found the project in Github, but am not able to find the the release notes. Does this driver support the Atmel mXT336S at this time?
Thank you
Hi omaha64,
Support for mXT336S is in progress.
Regards,
Sherif
Question,
I am trying to back-port the 2.6.35.7 driver to 2.6.32. I have mostly succeeded, but probe() fails because of missing platform_data. Digging through the driver code, I found the platform data structure in include/linux/i2c/atmel_mxt_ts.h:
Code:
struct mxt_platform_data {
unsigned long irqflags;
u8(*read_chg) (void);
};
So I assume that in my board file (where my i2c_board_info arrays live) I would want to create a static instance of the above struct and store a pointer to it in the .platform_data member of the i2c_board_info struct, right? But what is the preferred initialization, and what is read_chg supposed to actually do? What's the consequences of just setting it to NULL? (I know it won't crash because the driver checks it before calling it)
Need atmel mxt224 driver for Windows embedded compact 7
sherifhanna said:
Hello XDA developers,
As you know, Atmel maXTouch touchscreen controllers are used in a large percentage of Android phones and tablets out there.
I wanted to let you know that the latest patches for the official Atmel maXTouch Linux driver are available on GitHub. This will allow you to get the latest up to date changes before they make it into the mainline kernel.
On GitHub, search for user "atmel-maxtouch"
Happy hacking
Best regards,
Sherif
Product Marketing Manager - Atmel
Click to expand...
Click to collapse
Hi,
Can you please send me the multi touch driver for ATMEL MXT224(Stream interface PDD layer) for Windows Embedded compact 7.
Thanks in Advance,
Rag
Android Driver Initialization
Hi,
I would like to use MaxTouch mxt224 on a TI am335x-evm board running Android ICS, I'm looking for documentation on how to initialize mxt224 driver from board's configuration file. Can someone help me?
Thanks.
ceskobassman said:
Hi,
I would like to use MaxTouch mxt224 on a TI am335x-evm board running Android ICS, I'm looking for documentation on how to initialize mxt224 driver from board's configuration file. Can someone help me?
Thanks.
Click to expand...
Click to collapse
.
I don't know if there's such documentation to tell you how to initialize. At least a sample exists; look here:
arch/arm/mach-exynos4/mach-nuri.c
The values in "mxt_init_vals" come from Atmel's mxt224 datasheets/manual, so you'll have to find those. I would be surprised if you could not find these by Googling. When I was trying to get the mxt224 to work on an Omap4 board, I had to hack up the driver a little to handle the reset going to the IC, and to handle the /READY line from the IC to the host. Also, for ICS, you will need to have an IDC file in your root file system. Just Google for "Android Input Device Configuration File" (I'm new here and cannot post links yet).
Without that IDC file, Android considers the touch device to be a pointing device (like a mouse).
Good luck
Atmel Mxt768e Driver details
Hi Sherif & All,
Can you please share the atmel MaxTouch mxt768e driver link, I would also request you to share the driver which has the implementation for fIrmware upgrade.
Thanks,
Balaji S
Is there some place I can learn to understand and modify these? I've never done driver development before. Before I waste any time with this, can someone confirm if the input lag in most devices is because of filtering in the driver or because of the Atmel hardware?
KurianOfBorg said:
Is there some place I can learn to understand and modify these? I've never done driver development before. Before I waste any time with this, can someone confirm if the input lag in most devices is because of filtering in the driver or because of the Atmel hardware?
Click to expand...
Click to collapse
I don't think you'll be able to find a single place that describes the driver. Luckily, these drivers are small, the mxt224 is just a single C file. I've looked at the mxt224/mxt336, so the following info is specific to those. Some high level info for you to get started:
* The driver allows the exchange of "objects" between the touch IC and the host processor. To understand what the objects are, you'll need to find the datasheets/manual for the chip you're using. Just try Googling for it. Objects from the host to the IC are typically configuration data, and objects from the IC are probably touch data
* In the case of the mxt224/336, the driver needs the I2C driver
* The driver has a structure that needs to be setup from your board file (example arch/arm/mach-omap2/board-???.c). This structure has some configuration data needed by the driver
* Typically, there's a reset line that has to be pulled high on the board. May need pinmuxing to set the functionality of the pin correctly.
* The IC will also have a /CHG line that will go low when it has data to send to host. You will need to set up pinmuxing for this pin as well.
* The driver has an interrupt routine handling the /CHG line. When a touch/drag happens, objects will be sent to the driver to process. The driver formats the data and forward that up to the user space via the input subsystem.
* If you're doing this for Android, you'll need an .idc file in your root file system. Info: {link removed because I'm new. Just google Android IDC }
* The driver will look for a config file in /system/vendor/firmware, upon starting up
I can't comment too much on the lag you're talking about because I don't know the nature of the lag you're seeing. But I can tell you that the Atmel touch IC needs a "tuning" process where the internal parameters have to be adjusted to operate properly.
If you find more info on this subject, please post it here.
omaha64 said:
I can't comment too much on the lag you're talking about because I don't know the nature of the lag you're seeing. But I can tell you that the Atmel touch IC needs a "tuning" process where the internal parameters have to be adjusted to operate properly.
If you find more info on this subject, please post it here.
Click to expand...
Click to collapse
The "lag" is because the touchscreen does not recognise fast taps. You must press and hold your finger on the screen for several milliseconds before it actually recognises a touch. If it was purely a latency, then even a fast tap would be recognised after a delay. In this case, only a continuous press of a minimum duration is recognised. This makes the screen unresponsive and useless for games that need taps.
Is this something that can be resolved in the driver? I have a feeling this is coded in the firmware blob that gets uploaded to the touchscreen on initialisation.
KurianOfBorg said:
The "lag" is because the touchscreen does not recognise fast taps. You must press and hold your finger on the screen for several milliseconds before it actually recognises a touch. If it was purely a latency, then even a fast tap would be recognised after a delay. In this case, only a continuous press of a minimum duration is recognised. This makes the screen unresponsive and useless for games that need taps.
Is this something that can be resolved in the driver? I have a feeling this is coded in the firmware blob that gets uploaded to the touchscreen on initialisation.
Click to expand...
Click to collapse
I believe that if the issue you're describing is due to the IC's noise rejection algorithm, then you may be able to alter that in the driver. There are params in the chip such as number of valid ADC samples for the touch to be recognized as a true touch, that you can play with. But I don't know if you can change these parameters on the fly, or has to be done at start up. I haven't played with these params. See if you can grab hold of a "Protocol Guide" for the touch controller that you're working with. That shows all the params that you can change. In fact, you may be able to alter some of these params without having to touch the driver; search for mxt_app in github. I've used mxt_app to load configuration and change T9 object before, but that's the extent of my use of it.
Thanks for your help. Time to start reading. Some of the mach-* initialisation params can be changed at runtime such as the Vitalij value.
What is the real world best case input latency of these controllers? Can the Galaxy S2's touchscreen actually be made as good as the iPhone 5 or are the iPhone controllers simply superior?
Hi guys,
I'm currently working on an app for a company that asked me to make it modular.
Actually the app contains different features and the company would like to be able to compile the differents flavors of the App via Gradle.
If I understood correctly the current flavor solution offered in Android Studio doesn't fit my needs as if I have like 5 differents modules I'd have to make a flavor for : feature 1, feature 1 + 2, feature 1 + 2 + 3, feature 1 + 2 + 3 + 4, feature 1 + 2 + 3 + 4 + 5, feature 2, feature 2 + 3, ...... and so on.
So how can I say to gradle I just want to compile this part of my code ?
And how can I manage my code in a clean way for my app to understand which modules are enabled or not ?
Thanks a lot for your answers !
Not sure I'm understanding the problem. Create the flavors and in each of the src/<flavor>/ directories you can specify a build.gradle file and in that gradle file you can add dependencies for other modules. So this modular code would exist in <project root>/libprojects and the separate flavors would then conditionally include that code as a dependency. Make sense?
.
libprojects/module1
libprojects/module2
libprojects/module3
src/flavor1/build.gradle
src/flavor2/build.gradle
/src/flavor3/build.gradle
Each of those build.gradle files in the separate flavors could include dependencies for modules that it needs. Remember, code in a flavor takes precedence over code in src/main/java. So use that to your advantage to creating modular code.
Thanks a lot for your answer
It kinda give me an answer for the concept of isolating code on libraries. But the code isn't the biggest issue for me. Is it possible to put the resources (drawable and raw) in the libs so that I can grab them only on the required flavor of my app ? And do this via gradle dependency as I would have too much flavors otherwise.
Thanks again
joplayer said:
Thanks a lot for your answer
It kinda give me an answer for the concept of isolating code on libraries. But the code isn't the biggest issue for me. Is it possible to put the resources (drawable and raw) in the libs so that I can grab them only on the required flavor of my app ? And do this via gradle dependency as I would have too much flavors otherwise.
Thanks again
Click to expand...
Click to collapse
FYI, make sure you tap "reply" in the future so a person's post is "quoted" otherwise that person, me, doesn't get notified you responded from XDA. I just happened to click back on this post. Didn't receive a notification.
When you say libs do you mean "libprojects" folder or do you mean libs as in creating a jar file with those resources? Don't forget you can copy the dependencies from another flavor if you need to at compile time. Not sure if that would help in your scenario.
shafty023 said:
FYI, make sure you tap "reply" in the future so a person's post is "quoted" otherwise that person, me, doesn't get notified you responded from XDA. I just happened to click back on this post. Didn't receive a notification.
When you say libs do you mean "libprojects" folder or do you mean libs as in creating a jar file with those resources? Don't forget you can copy the dependencies from another flavor if you need to at compile time. Not sure if that would help in your scenario.
Click to expand...
Click to collapse
Sorry, bad old reflex
Actually that is my problem. How am I supposed to isolate my features ? Should I make an Android library ? Should I brutally use gradle to isolate some files ?
Thanks again
joplayer said:
Sorry, bad old reflex
Actually that is my problem. How am I supposed to isolate my features ? Should I make an Android library ? Should I brutally use gradle to isolate some files ?
Thanks again
Click to expand...
Click to collapse
It really depends on what you mean by isolate features. If you mean paid vs free app then you should undoubtedly isolate those features with a gradle variable that is set at compile time and read from at runtime via the BuildConfig class.
Code:
if (BuildConfig.IS_PRO) {
... some code
}
It's more of a mess to exclude code then to just make a single code source where you conditionally include/exclude based on compile time variables.
shafty023 said:
It really depends on what you mean by isolate features. If you mean paid vs free app then you should undoubtedly isolate those features with a gradle variable that is set at compile time and read from at runtime via the BuildConfig class.
Code:
if (BuildConfig.IS_PRO) {
... some code
}
It's more of a mess to exclude code then to just make a single code source where you conditionally include/exclude based on compile time variables.
Click to expand...
Click to collapse
Thanks a lot I think this kind of syntax might help me.
To make things clear the product will be compilable for different end products. One might want geolocalization, another not. As features end up taking space in the APK I need to exclude them from compilation. And finally this app must be compilable out of Android Studio so Gradle is my only savior ! And I'm far from beeing a Gradle expert so thanks for your answer I'll look at it
Hello,
I create that thread to share with you a tutorial showing you how to access the Java 8 language features with Android N. You can find the tutorial here on my blog : http://www.ssaurel.com/blog/accessing-to-the-java-8-language-features-with-android-n/ . There are also others great tutorials for Android development.
If you prefer to read the tutorial here, this is the complete content :
Accessing to the Java 8 language features with Android N
Google has unveiled developer preview of Android N last month with a new exciting developer program. Official release is planned for Q3 2016. Amongst the new features of Android N, the support of several Java 8 language features is a great addition for developers.
Supported features include :
Lambda expressions
Default and static interface methods
Repeatable annotations
Method References
Additionally, some new APIs introduced with Java 8 are available like reflection and language-related APIs and Utility APIs (java.util.function and java.util.stream).
Set up your development environment
To support Android N new features, you need to set up correctly your development environment. You need to get last version of Android N developer preview and to download Android Studio 2.1. You can make these installations via the Android SDK Manager on your computer. To get more details about the installation process, don’t hesitate to read the official documentation from Android Team : http://developer.android.com/preview/setup-sdk.html
Enable support for Java 8
In order to use the new Java 8 language features, you need to use the new Jack toolchain. Jack, for Java Android Compiler Kit, replaces javac compiler. It compiles Java language source code into Android-readable dex bytecode with its own .jack library format. Furthermore, it provides other great toolchain features inside a single tool like repackaging, shrinking, obfuscation and multidex. Before Jack, you needed to use ProGuard to achieve these tasks for example.
To enable support for Java 8 in your Android project, you need to configure your build.gradle file like that :
Code:
android {
...
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Enjoy your first Lambda Expression on Android
Now, you can enjoy your first Lambda expression on Android. Basically, a Lambda expression is a block of code that can be passed around to be executed later. In fact, it is very similar to anonymous classes. However, Lambda expressions are succinct with less verbose code. Let’s use a Lambda to set a click listener on a Button :
Code:
button.setOnClickListener(view -> Log.d(TAG, "Button Clicked."));
You can make the same with an item click listener on a ListView :
Code:
listView.setOnItemClickListener((parent, view, position, id) -> {
// …
}
It works great with a Runnable interface too :
Code:
Runnable runnable = () -> Log.d(TAG, "Log from a Runnable with a Lambda");
newThread(runnable).start();
Clearly, you can see the code is shorter and more readable with Lambdas expressions. It will be great for the productivity of Android developers.
Create your first Functional Interface on Android
To create our first Functional on Android, let’s take classic example of a Calculator with an addition feature :
Code:
@FunctionalInterface
public interface Calculator {
int calculate(int a, int b);
}
Now, you can add a default method to the Calculator interface that will be used to display a result for example :
Code:
@FunctionalInterface
public interface Calculator {
int calculate(int a, int b);
default void print(String result){
// … print result …
}
}
Finally, we can create a Lambda expression with that interface :
Code:
Calculator c = (a, b) -> a + b;
Like you can see with those simple examples, Java 8 language features will offer a new way to Android developers to improve their productivity. Thanks to the developer preview of Android N, you can try these features right now.
Don't hesitate to share your feedbacks with me.
Thanks.
Sylvain
Is it worth going to Jack right now, though?
I've read that it's slower in build time than the normal configuration, and as some apps already take a huge amount of time to compile, I'm not sure if it's worth it.
Also, lambdas are only syntactic sugar, right? Behind the scenes, everything is still the same.
AndroidDeveloperLB said:
Is it worth going to Jack right now, though?
I've read that it's slower in build time than the normal configuration, and as some apps already take a huge amount of time to compile, I'm not sure if it's worth it.
Also, lambdas are only syntactic sugar, right? Behind the scenes, everything is still the same.
Click to expand...
Click to collapse
For the moment, I just tried on small projects. So, it was not so slow during build time. May be on big projects ?
These new features are not a revolution for sure, but it's interesting to have the choice to use it in the future when you develop Android apps. Be able to have some functional programming features is a good thing.
For Lambdas, it's not really the same thing on the bytecode. On Java 8 desktop apps, some benchmarks showed that using Lambdas is very often faster.
sylsau said:
For the moment, I just tried on small projects. So, it was not so slow during build time. May be on big projects ?
These new features are not a revolution for sure, but it's interesting to have the choice to use it in the future when you develop Android apps. Be able to have some functional programming features is a good thing.
For Lambdas, it's not really the same thing on the bytecode. On Java 8 desktop apps, some benchmarks showed that using Lambdas is very often faster.
Click to expand...
Click to collapse
I see.
For Lambdas, I don't know. It's just my guess that whatever you write is converted to normal code that you probably should have written without lambdas.
Perhaps the JDK has some optimizations for it.
EDIT: it seems there is a difference:
http://www.oracle.com/technetwork/java/jvmls2013kuksen-2014088.pdf
http://blog.takipi.com/benchmark-how-java-8-lambdas-and-streams-can-make-your-code-5-times-slower/
Nice. Wonder if it's this way on Android too.
AndroidDeveloperLB said:
I see.
For Lambdas, I don't know. It's just my guess that whatever you write is converted to normal code that you probably should have written without lambdas.
Perhaps the JDK has some optimizations for it.
EDIT: it seems there is a difference:
http://www.oracle.com/technetwork/java/jvmls2013kuksen-2014088.pdf
http://blog.takipi.com/benchmark-how-java-8-lambdas-and-streams-can-make-your-code-5-times-slower/
Nice. Wonder if it's this way on Android too.
Click to expand...
Click to collapse
Thanks for the links. Really interesting.
It seems you were right. Lambdas and Stream can make execution slower.
sylsau said:
Thanks for the links. Really interesting.
It seems you were right. Lambdas and Stream can make execution slower.
Click to expand...
Click to collapse
They do? I thought the data and graphs show Lambdas are faster. Are you sure?
AndroidDeveloperLB said:
They do? I thought the data and graphs show Lambdas are faster. Are you sure?
Click to expand...
Click to collapse
It depends the way you use it like said on takipi blog. If they are well used, it can make your code run faster however. It's always the same thing, it depends from your implementation and the way you use it.
sylsau said:
It depends the way you use it like said on takipi blog. If they are well used, it can make your code run faster however. It's always the same thing, it depends from your implementation and the way you use it.
Click to expand...
Click to collapse
So there is no definite conclusion? So my guess is that for Android it's too early to see difference between normal code and Lambda.
Pretty Information
such a nice post, i am studying the java but it is totally different why can you please explain what the java in book is different the java in applications??
Regards Junaid Shahid
---------- Post added at 02:47 PM ---------- Previous post was at 02:42 PM ----------
AndroidDeveloperLB said:
So there is no definite conclusion? So my guess is that for Android it's too early to see difference between normal code and Lambda.
Click to expand...
Click to collapse
:good:
@sylsau thanks bro nice guide :good:
junaidshahidcom said:
such a nice post, i am studying the java but it is totally different why can you please explain what the java in book is different the java in applications??
Regards Junaid Shahid
---------- Post added at 02:47 PM ---------- Previous post was at 02:42 PM ----------
:good:
Click to expand...
Click to collapse
They are almost the same. The pure Java is still there, but some classes do not exist or have less functions, because Android is a mobile OS.
There is just another layer of the framework itself, that you need to learn, when developing for Android.
Thanks For Elaburation
AndroidDeveloperLB said:
They are almost the same. The pure Java is still there, but some classes do not exist or have less functions, because Android is a mobile OS.
There is just another layer of the framework itself, that you need to learn, when developing for Android.
Click to expand...
Click to collapse
Can you suggest me how to become a good developed of Java Along Android?
junaidshahidcom said:
Can you suggest me how to become a good developed of Java Along Android?
Click to expand...
Click to collapse
Learn both (first Java of course).
You can watch "the new boston" videos to get started:
https://thenewboston.com/videos.php
You can also read a lot on Google's website, but only after you are good with Java.
awesome
AndroidDeveloperLB said:
Learn both (first Java of course).
You can watch "the new boston" videos to get started:
https://thenewboston.com/videos.php
You can also read a lot on Google's website, but only after you are good with Java.
Click to expand...
Click to collapse
the website you referred is awesome, i will try to learn all programming languages from here <3
regards Junaid Shaid
princevirus said:
@sylsau thanks bro nice guide :good:
Click to expand...
Click to collapse
No problem. I'm going to publish more tutorials very soon
Thanks.
Android小楼阁-QQ群 439637151
来自搭载Android 2.3 GingerBread的华为Y220-T10
Hello,
I made a new tutorial available on XDA Forum. It shows you how to implement a Navigation Drawer with a Toolbar on Android.
Don't hesitate to discover it : http://forum.xda-developers.com/android/software/tutorial-implement-navigation-drawer-t3388990
Sylvain
sylsau said:
Hello,
I made a new tutorial available on XDA Forum. It shows you how to implement a Navigation Drawer with a Toolbar on Android.
Don't hesitate to discover it : http://forum.xda-developers.com/android/software/tutorial-implement-navigation-drawer-t3388990
Sylvain
Click to expand...
Click to collapse
hi, can that commit can help to use java 8 on M?
https://github.com/kogone/android_build/commit/ac67b54797f06b67a1ce0e39aa8528dbffac3b92