EXPLAIN THE ANDROID APPLICATION ARCHITECTURE?

Explain the Android application Architecture?

Following is a list of components of Android application architecture:

Services: Used to perform background functionalities.

Intent: Used to perform the inter connection between activities and the data passing echanism.

Notification: light, sound, icon, notification, dialog box and toast.

Content Providers: It will share the data between applications.

CI/CD CASE STUDY

CI/CD Case Study

CICD Case Study

INTRODUCTION

Continuous Delivery is mainly related with the DevOps movement and the practice of continuous deployment. There are many case studies that fall into this sweet spot. If you want to see more companies talk about their journey, check out the videos from the DevOps Enterprise Summit. It’s important to note that continuous delivery has been widely adopted by many web companies, the techniques described in this article can be used in all sorts of domains—essentially, anywhere where your software development capability is considered as a strategic asset.

CASE STUDY

Like many companies, “Company A” has also used the cloud since day one. The company has always used the cloud as a flexible way to spin up the servers and to store the data. The targets set by the company leadership were to improve developer productivity by a factor of 10, so as to get material off the critical path for product development and can reduce the expenses. The company has three high-level goals:

  • Creating a single platform to support all the devices.
  • Increasing the quality and reducing the amount of stabilization required prior to release.
  • Reducing the amount of time spent on planning.
  • The key elements in achieving these goals was implementing continuous delivery, with a particular focus on:
  • The practice of continuous integration.
  • Significant investment in test automation.
  • Creating a hardware simulator so that tests could be run on a virtual platform

THE BENEFITS

Developers now have consistent environments in which deploy code for the company’s applications. By using Amazon Cloud, the team has saved money and improved the end-user experience. With Amazon Cloud the company has better access to data, more agile, and they can get feedback on product performance in days

SECURITY: NEW METASPLOIT EXTENSION

Security: New Metasploit Extension

Metasploit Extension

Enterprise security teams and penetration testers now have a new tool for evaluating the risks posed to their networks from Internet of Things (IoT) devices that are operating on radio frequencies outside the standard 802.11 specification. Explore this article and know more about Metasploit extension for testing IoT device security.

Rapid7, the owner of the Metasplot Project, has released an extension to its recently introduced Hardware Bridge API for conducting pen tests on network-connected hardware.

The new RFTransceiver extension for the Metasploit Hardware Bridge is designed to let the companies detect and evaluate the security state of multi-frequency wireless devices operating on their networks more effectively than current tools permit.

The RFTransceiver gives security and pros the ability to craft and monitor different RF packets for identifying and accessing the organizations wireless systems beyond Ethernet-accessible technologies. It also allows the pen testers to create and direct “short bursts of interference” to some devices to see how they respond from a security standpoint.

Many organizations already have devices and systems operating on radio frequencies outside 802.11 on their networks, examples include RFID readers, smart lighting systems using the Zigbee communication protocol and network-enabled alarms, surveillance, and door control systems.

The RFTransceiver extension is designed to help the organizations with such devices answer to vital questions, such as the operating range of the devices, whether they are encrypted or not, how they respond to outside interference, and how they fail.

Many RF-enabled devices fail to serialize, this makes them vulnerable to issues such as replay attacks where an attacker records a command sent out over RF and then plays it back. With organizations expected to connect a constantly growing range of wireless IoT devices to the network over the next few years, RF testing capabilities have become vital.

HOW TO USE RFTRANSCEIVER

Using the new RFTransceiver extension requires the purchase of an RfCat-compatible device such as Yard Stick One. Download the latest RfCat drivers, included with those drivers you can find rfcat_msfrelay. This is the Metasploit Framework relay server for RfCat. Run this on the system with the RfCat compatible device attached.

Then you can connect with the hardware bridge:

RFTranceiver Usage
$ ./msfconsole -q
msf > use auxiliary/client/hwbridge/connect
msf auxiliary(connect) > run
[*] Attempting to connect to 127.0.0.1…
[*] Hardware bridge interface session 1 opened (127.0.0.1 -> 127.0.0.1) at 2017-02-16 20:04:57 -0600
[+] HWBridge session established
[*] HW Specialty: {“rftransceiver”=>true} Capabilities: {“cc11xx”=>true}
[!] NOTICE: You are about to leave the matrix. All actions performed on this hardware bridge
[!] could have real world consequences. Use this module in a controlled testing
[!] environment and with equipment you are authorized to perform testing on.
[*] Auxiliary module execution completed
msf auxiliary(connect) > sessions

Active sessions

Id  Type Information  Connection

— —- ———– ———-
1 hwbridge cmd/hardware rftransceiver 127.0.0.1 -> 127.0.0.1 (127.0.0.1)

msf auxiliary(connect) > sessions -i 1
[*] Starting interaction with 1…

hwbridge > status
[*] Operational: Yes
[*] Device: YARDSTICKONE
[*] FW Version: 450
[*] HW Version: 0348

TYPESCRIPT 2.4 RC

TypeScript 2.4 RC

TypeScript 2.4 RC

Version 2.4 of TypeScript, a popular, type superset of JavaScript. It offers improved load times with the addition of a dynamic import expressions capability. A release candidate version is now available via NuGet or via NPM. Explore this article and see what’s new in TypeScript 2.4 RC.

 

The latest stable version of TypeScript, can be grabbed through NuGet, or use the following command with npm:

npm install -g typescript@rc

Visual Studio 2015 users (who have Update 3) can install TypeScript from here, and Visual Studio 2017 users using Update 2 will be able to get TypeScript by simply installing it from here.

To get it working, user can easily configure Visual Studio Code and Sublime Text plugin to pick up whatever version the user needs.

DYNAMIC IMPORT EXPRESSIONS

Dynamic import expressions is a new feature and part of ECMAScript that allows the users to asynchronously load a module at any arbitrary point in their program.

For instance, imagine a webpage that allows the user to create and edit images. When the user is working on one file, the page will allow the user to download that file immediately; but if he/she is working on multiple images, then the user can save all of them as a .zip file.

User can conditionally import other modules and libraries. For example, here’s an async function that only imports a utility library when it’s needed:

async function getZipFile(name: string, files: File[]): Promise {
const zipUtil = await import(‘./utils/create-zip-file’);
const zipContents = await zipUtil.getContentAsBlob(files);
return new File(zipContents, name);
}

Many bundlers have support for automatically splitting output bundles based on these import expressions, so consider using this new feature with the esnext module target.

STRING ENUMS
TypeScript 2.4 now allows enum members to contain string initializers.
enum Colors {
Red = “RED”,
Green = “GREEN”,
Blue = “BLUE”,
}

The limitation is that string-initialized enums cannot be reverse-mapped to get the original enum member name. In other words, the user cannot write Colors[“RED”] to get the string “Red”. Improved inference for generics

TypeScript 2.4 introduces a few wonderful changes around the way generics are inferred.

RETURN TYPES AS INFERENCE TARGETS:

TypeScript can now make inferences for the return type of a call. This can improve user experience and catch errors.

function arrayMap<T, U>(f: (x: T) => U): (a: T[]) => U[] {
return a => a.map(f);
}
const lengths: (a: string[]) => number[] = arrayMap(s => s.length);
As an example of new errors you might spot as a result:
let x: Promise = new Promise(resolve => {
resolve(10);
// ~~ Error!
});

STRICTER CHECKING FOR GENERIC FUNCTIONS

TypeScript now tries to unify type parameters when comparing two single-signature types. As a result, user gets the stricter checks when relating two generic signatures.

Type A = <T, U>(x: T, y: U) => [T, U];
type B = <S>(x: S, y: S) => [S, S];
function f(a: A, b: B) {
a = b;  // Error
b = a;  // Ok
}

WEAK TYPE DETECTION

TypeScript 2.4 introduces the concept of “weak types”. Any type that contains nothing but a set of all-optional properties is considered to be weak. For example, this Options type is a weak type:

interface Options {
data?: string,
timeout?: number,
maxRetries?: number,}
In TypeScript 2.4, it’s now an error to assign anything to a weak type when there’s no overlap in properties. For example:
function sendMessage(options: Options) {
// …
}
const opts = {
payload: “hello world!”,
retryOnFail: true,
}
// Error!
sendMessage(opts);
// No overlap between the type of ‘opts’ and ‘Options’ itself.
// Maybe we meant to use ‘data’/’maxRetries’ instead of ‘payload’/’retryOnFail’.

User can think of this as TypeScript “toughening up” the weak guarantees of these types to catch the silent bugs.

DELAY IN JAVA 9

Delay in Java 9

With less than few more days to the release of JDK 9, it’s being delayed again. The new release date has been updated to July 2017, four months later than the previously postponed date.

PUSHING THE DATE BACK

On September-13, Mark Reinhold, the chief architect of the Java platform group at Oracle, posted his suggestion to postpone the release date for JDK 9 in his e-mail in Oracle’s mailing list.

Mark also noted that the number of open bugs that are new in JDK 9 is larger than it was at this point in JDK 8, and that’s why he proposed a four months’ delay. Mark put his offer up for a vote, asking others on Oracle’s mailing list what they think about it.

Moving the release date of JDK 9 back 4 months affected the entire schedule. It also pushed back the “All tests run”, “Zero bug bounce” and also “Release candidate” milestones.

THE CURSE OF PROJECT JIGSAW

No surprise that JDK 9 has been pushed again, and for the same reason – Project Jigsaw. This project has a long history of pushing Java versions back, moving from Java 7 to Java 8 and now as part of Java 9.

The Jigsaw objective is to make Java modular and break the JRE to interoperable components. This means that the developer will be able to create a scaled down runtime Jar (rt.jar) customised to the components of a project actually needs.

The desire is to make Java scalable to small computing devices, improves security, and performance, and most importantly make it easier for developers to construct and maintain libraries. Considering the JDK 8 rt.jar has about 20,000 classes that are part of the JDK.

THE MAJOR REASONS WHY JDK 9 HAS BEEN POSTPONED

  • The new module system breaks all use cases that depend on reflection to access internals of other libraries.
  • It does not fix the issue of depending on two conflicting versions of a library.
  • It fails to strongly encapsulate access, because classes can still be loaded as resources, and used that way.

MARK HAS ADDRESSED THE REASON FOR THE DELAY ON HIS ORIGINAL EMAIL, EXPLAINING THAT

“We recently received critical feedback that motivated a redesign of the module system’s package-export feature, without which we’d have failed to achieve one of our main goals. There are, beyond that, still many open design issues, which will take time to work through.”

The current pushback tells us loud and clear that Jigsaw needs more time, and our only hope is that it’ll actually be a part of JDK 9, and not be pushed back to JDK 10. Or JDK 11. There’s no doubt it’s a critical and important project, and the community is willing to wait a little longer for it to be just right.